- # 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)
来源: http://www.bubuko.com/infodetail-2923277.html