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)