日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > python >内容正文

python

python遍历指定文件夹的所有文件_python 统计指定文件夹下所有的文件数量,BFS方式...

發布時間:2025/3/21 python 40 豆豆
生活随笔 收集整理的這篇文章主要介紹了 python遍历指定文件夹的所有文件_python 统计指定文件夹下所有的文件数量,BFS方式... 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

python 統計指定文件夾下所有的文件數量

本來一直是有這個需求,只是以前寫的是遞歸的方式處理,感覺對資源的占用不友好,而且python的最大遞歸深度不超過1000,所以改了一下,這里用廣度優先遍歷的方式實現。

實測兩層共24個文件夾,共50w的文件數量。運行時間大概3秒。以下是代碼:

import os

import queue

def get_file_quantity(folder: str) -> int:

'''BFS獲取文件夾下文件的總數量'''

# 判斷初始文件夾

assert os.path.isdir(folder), '請輸入有效的文件夾參數'

file_quantity = 0 # 初始化文件數量

folder_path_queue = queue.Queue()

folder_path_queue.put_nowait(folder) # 初始化隊列的值

# 處理隊列里的文件夾

while not folder_path_queue.empty():

folder = folder_path_queue.get_nowait()

file_folder_list = list(map(lambda bar: os.path.join(folder, bar), os.listdir(folder)))

folder_list = list(filter(lambda bar: os.path.isdir(bar), file_folder_list))

for folder_path in folder_list:

folder_path_queue.put_nowait(folder_path)

temp_file_count = len(file_folder_list) - len(folder_list)

file_quantity += temp_file_count

return file_quantity

if __name__ == '__main__':

file_quantity = get_file_quantity(r'/home')

print(f'文件總數是: {file_quantity}')

思路

這里主要是使用了隊列,就是普通的BFS的思路

這里稍微改一下folder_list = list(filter(lambda bar: os.path.isdir(bar), file_folder_list))里的的lambda函數就可以實現判斷對文件名的各種判斷操作,這里函數功能的實現就完全取決于自己的腦洞了!

附上一個改編版: 查看包含特定后綴的文件的數量

改編版: 查看包含特定后綴的文件的數量

import os

import queue

def filter_extension(filename: str, extension: str) -> bool:

'''判斷文件路徑名的后綴是否和給定的后綴字符串相同

只是單純的字符串判斷

'''

basename_and_extension = filename.split('.')

return (basename_and_extension[-1] == extension) and (len(basename_and_extension) >= 2)

def get_file_quantity(folder: str, extension: str) -> int:

'''BFS獲取文件夾下文件的總數量'''

# 判斷初始文件夾

assert os.path.isdir(folder), '請輸入有效的文件夾參數'

assert isinstance(extension, str), '請輸入有效的文件后綴名'

file_quantity = 0 # 初始化文件數量

folder_path_queue = queue.Queue()

folder_path_queue.put_nowait(folder) # 初始化隊列的值

# 處理隊列里的文件夾

while not folder_path_queue.empty():

folder = folder_path_queue.get_nowait()

file_folder_list = list(map(lambda bar: os.path.join(folder, bar), os.listdir(folder)))

folder_list = list(filter(lambda bar: os.path.isdir(bar), file_folder_list))

file_list = list(filter(lambda bar: os.path.isfile(bar), file_folder_list))

match_extension_list = list(filter(lambda bar: filter_extension(bar, extension), file_list))

for folder_path in folder_list:

folder_path_queue.put_nowait(folder_path)

temp_file_count = len(match_extension_list)

file_quantity += temp_file_count

return file_quantity

if __name__ == '__main__':

extension = 'py'

file_quantity = get_file_quantity(r'/home', extension)

print(f'包含后綴 {extension } 的文件的數量: {file_quantity}')

總結

以上是生活随笔為你收集整理的python遍历指定文件夹的所有文件_python 统计指定文件夹下所有的文件数量,BFS方式...的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 91激情影院 | 成人h片在线观看 | 可以直接观看的av | 99re在线观看视频 | 国产一区二区视频网站 | wwwyoujizz日本 | 五月婷婷综合在线观看 | 665566综合网 | 精品日韩久久 | 免费黄av | 国产91欧美 | 日韩每日更新 | 337p日本欧洲亚洲鲁鲁 | 一级二级三级视频 | 肉色超薄丝袜脚交69xx | 日韩资源网| 91久久精品无码一区二区 | 一本到在线 | 色77777 | 亚洲一区二区av在线 | 91精品99| 日韩福利视频网 | 免费看黄av | 久久伊人av | 精品无码av一区二区三区 | 日韩欧美综合在线 | 奇米一区| 亚欧成人精品 | 国产传媒在线观看 | 亚洲永久免费精品 | 国产一区二区日韩 | 999久久久免费精品国产 | 性感av在线 | 嫩草视频91 | 国产一区二区三区在线视频观看 | 热久久最新 | 打开免费观看视频在线播放 | 巨胸挤奶视频www网站 | 国产91综合 | 欧美日韩黄色一级片 | 69一区二区 | 精品人妻av一区二区 | h片大全 | 亚洲天堂小视频 | 欧美日韩色视频 | 一久久 | 亚洲天堂男人天堂 | www.爱色av.com | 九九热视频这里只有精品 | 欧美三级不卡 | 中文字幕在线视频网站 | 色99视频 | 欧美性生活xxx | 欧美一线高本道 | 四川操bbb | 国产又爽又黄无码无遮挡在线观看 | 久久久久久久久久久福利 | 91尤物国产福利在线观看 | 国产xxxx| 懂色av蜜臀av粉嫩av分享 | 他趴在我两腿中间添得好爽在线看 | 亚洲成人中文 | jav中文字幕| 91国产精品一区 | 超碰精品在线 | 中文字幕欧美专区 | 亚洲av第一成肉网 | 91色视频在线 | 波多野吉衣视频在线观看 | 特级黄色录像 | 视频国产在线 | 九九爱精品| 亚洲不卡中文字幕无码 | 免费毛毛片 | 中文字字幕在线 | 国产在线视频卡一卡二 | 亚洲成人自拍视频 | 成人免费一区二区三区 | 欧美日韩一级二级 | 国产精品久久久av | 欧美黄色性 | 成人在线天堂 | av手机在线免费观看 | 日韩三级一区 | 看黄色网址 | 免费一级特黄3大片视频 | 综合婷婷久久 | 亚洲伦理久久 | 日韩无码精品一区二区 | 村姑电影在线播放免费观看 | 正在播放91| 亚洲成a人在线观看 | 淫妹妹影院 | 一级片成人 | 日韩一区二区视频在线观看 | 国产精品无 | 亚洲免费av在线 | 交专区videossex另类 | 一区精品在线 |