json - 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:
解决方案
对于文件系统相关的事情,最好使用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:
推荐阅读
- python - 具有更改的数据框多列提取
- postgresql - 通过在 docker compose 的 postgres 命令行上传递 archive_command 来设置 WAL 归档
- python - 尽管安装了“六”包,但无法找到适合 Requirement.parse('six>=1.9') 的发行版
- r - 无法使用 ggplot2 查看完整图表(大小问题)
- android - “RenderFlex 溢出”换行文本抖动
- vba - 通过 MS Access VBA 将选定的 Outlook 电子邮件保存为 .msg 文件
- javascript - 如何通过单击按钮切换类?
- r - 错误:无效输入:date_trans 仅适用于 Date 类的对象 // 不确定如何修复
- sql - 如何将多个单元格合并为一个
- javascript - 范围价格 - 过滤器,除了最初设置的值