在目录中递归查找给定文件

时间:2019-07-01 12:49:23

标签: python-3.6

在目录中递归查找给定文件。我尝试的代码没有显示任何输出,尽管我有一个文件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 个答案:

答案 0 :(得分:1)

看起来像您需要的。

import glob

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

答案 1 :(得分:0)

这是另一种方法:

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解决方案通常更快。