用Python搜索一个目录,包括可能存在或不存在的所有子目录。

2024-09-22 14:26:58 发布

您现在位置:Python中文网/ 问答频道 /正文

我想搜索一个目录,包括所有可能存在或不存在的子目录,以查找Python中的文件。在

我看到了很多我们正在查看的目录已知的示例,例如:

os.path.exists(/dir1/myfile.pdf)

…但是如果我想要的文件位于我不知道是否存在的任意子目录中,该怎么办?例如,上面的代码段在此处找不到文件:

/dir1/dir2/dir3/.../dir20/myfile.pdf

显然,如果不显式地运行该行20次(每个目录一次),就永远无法进行泛化。在

我想我正在寻找一个递归搜索,我不知道文件系统的确切结构(如果我说得对的话)。在


Tags: 文件path目录示例pdfos代码段exists
2条回答

这是代码,一定要找到一个文件(在我的例子中)wsgi.py“)低于pwd

    import os
    for root, dirs, files in os.walk('.'):
       if "wsgi.py" in files:
           print root


./jg18/blog/blog
./goat/superlists/superlists
./jcg_blog/jcg_blog
./joelgoldstick.com.16/blog/blog
./blankdj19/blank/blank
./cp/cpblog/cpblog
./baseball/baseball_stats/baseball_stats
./zipcodes/zipcodes/zipcodes
./django.1.6.tut/mysite/mysite
./bits/bits/bits

如果文件只存在于一个目录中,它将列出一个目录

按照@idjaw的建议,尝试os.walk()如下所示:

import os
import os.path

for (dir,subdirs,files) in os.walk('/dir1'):
    # Don't go into the CVS subdir!
    if 'CVS' in subdirs:
        subdirs.remove('CVS')

    if 'myfile.pdf' in files:
        print("Found:", os.path.join(dir, 'myfile.pdf'))

相关问题 更多 >