python生成器 獲取 目錄下檔案
# os.walk()和os.list 都是得到所有檔案的列表, 如果目錄下檔案特別多, 上億了, 我們就需要生成器的方式獲取
# 要求目錄下面沒有目錄, 會遞迴到子目錄下面找檔案, (如果有子目錄可以在下面程式碼基礎上做修改)
def gen_file(path, per_file_count): # 目錄和一次想要回去的檔案數量
i = 0
scandir_it = scandir(path) # 遞迴獲取目錄下檔案, 返回迭代器
while True:
try:
entry = next(scandir_it) # 回去下一個
except StopIteration: # 取空之後, 會報錯
logger.warning(path + "目錄下沒有檔案")
break
if i == per_file_count:
break
i += 1
yield entry.path, entry.name
for path, name in gen_file(path, count): # 引數是一次要獲取數量(int)