首页 > 解决方案 > Python Os.walk 错过了目录中要处理的几个文件

问题描述

在目录中的 10 个文件中,只有 8 个文件被处理,2 个文件没有被处理。但是,如果我删除所有 8 个文件并尝试使用丢失的 2 个文件运行,它就可以工作。为什么 Os.walk 缺少文件?还有一种方法可以一个接一个地处理目录中的所有文件而不会丢失任何文件。注意:该解决方案将用于包含 100K JSON 文件的文件夹。

for root, dirs, files in os.walk('D:/M'):
     for file in files:
        if file.endswith(".json"):
            Strfil=os.path.join(root,file)
            with open(Strfil, 'r') as json_file:

标签: jsonpython-3.xpython-2.7os.walk

解决方案


对于文件系统相关的事情,最好使用pathlib模块

使用 pathlib 你可以做这样的事情。

from pathlib import Path

json_files = list(Path("D:/M").glob("**/*.json"))
for f in json_files:
    with open(f, 'r') as json_file:

推荐阅读