如何检查目录中是否有文件(包含多个其他目录)?与OS模块

时间:2012-10-17 01:13:26

标签: python operating-system

假设我有一个像这样的目录结构

Directory of C:\treeofbkup

10/17/2012  01:59 PM    <DIR>          .
10/17/2012  01:59 PM    <DIR>          ..
10/17/2012  01:59 PM             7,209 index
10/17/2012  01:59 PM    <DIR>          objects
               1 File(s)          7,209 bytes
               3 Dir(s)  912,672,129,024 bytes free

文件包含在文件夹objects中。

我的问题是有一种方法来检查文件是否与objects的名称无关(说我不知道​​该文件夹名称)?没有写一个for循环来手动遍历我的目录结构的路径?

def search(path, file):
    for  (dirpath, dirnames, filenames) in os.walk(path):
        for f in filenames:
            if file == f:
                return True #hey look here is my file
    return False #oops couldnt find your file sorry

我之后的解决方案就像directory_set = set()if directory_set.contains(path)。如果这个问题让某些人感到困惑,我很抱歉

1 个答案:

答案 0 :(得分:2)

答案是否定的。你必须至少走一次树,然后你可以将文件名的查找表存储到可能的目录(例如,pickled,或者sqlite3 dbase),如果你想经常重复使用它。