Найти данный файл рекурсивно внутри каталога - PullRequest
0 голосов
/ 01 июля 2019

Найти данный файл рекурсивно внутри директории.Код, который я пробовал, не показывает никакого вывода, хотя у меня есть файл C: \ Users \ anaveed \ test \ hoax \ a.txt

Ниже кода

import glob
import os

os.chdir(r'C:\Users\anaveed\test')
for f in glob.iglob('a.txt', recursive=True):
    print(f)

Нет вывода

Ответы [ 2 ]

1 голос
/ 01 июля 2019

Похоже, вам нужно.

import glob

for f in glob.iglob(r'C:\Users\anaveed\test\**\a.txt', recursive=True):
    print(f)
0 голосов
/ 01 июля 2019

Это еще один способ сделать это:

import os

path = r'C:\Users\anaveed\test'
filename = 'a.txt'
for root, dirs, files in os.walk(path):
    for name in files:
        if name == filename:
            print(os.path.join(root, name))

Пара комментариев:

  1. вам не нужно использовать glob, если вы не указываете групповые символы, просто используйте os.walk()
  2. вам не нужно переходить по определенному пути для поиска в нем файлов, просто сохраните путь в переменной.
  3. было бы еще лучше обернуть это в функцию (возможно, используя понимание списка).
  4. решение glob обычно быстрее.
...