Python Os.walk пропускает несколько файлов для обработки в каталоге - PullRequest
0 голосов
/ 02 ноября 2019

Из 10 файлов в каталоге обрабатываются только 8 файлов, а 2 файла не обрабатываются. Но если я удаляю все 8 файлов и пытаюсь запустить с пропущенными 2 файлами, это работает. Почему в Os.walk отсутствуют файлы? Также есть способ обработать все файлы в каталоге один за другим, не пропуская ни одного. Примечание. Решение будет использоваться для папки, содержащей 100 тыс. Файлов 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:

1 Ответ

0 голосов
/ 02 ноября 2019

Для вещей, связанных с файловой системой, лучше использовать модуль 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:
...