Python Os.walk 目录中缺少几个要处理的文件
Python Os.walk misses few files to process in the directory
目录中的 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:
我认为 Windows 会跳过任何超过 250 个字符的文件,因为 'too long'。我的建议是映射网络驱动器以使路径更短。
例如z:\myfile.xlsx 而不是 c:\a\b\c\d\e\f\g\myfile.xlsx
目录中的 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:
我认为 Windows 会跳过任何超过 250 个字符的文件,因为 'too long'。我的建议是映射网络驱动器以使路径更短。 例如z:\myfile.xlsx 而不是 c:\a\b\c\d\e\f\g\myfile.xlsx