在文件夹中搜索包含子字符串的文件,python?

时间:2016-03-16 16:01:18

标签: python file search filenames

假设路径为" c:\ users \ test" ,文件夹" test"包含许多文件。我想在测试文件夹中搜索一个文件,文件名包含一个单词" postfix"在python脚本中。有人可以帮我吗?

3 个答案:

答案 0 :(得分:2)

列出文件夹中的所有文件:

    from os import listdir
    from os.path import isfile, join
    onlyfiles = [f for f in listdir(mypath) if isfile(join(mypath, f))]

,而不是询问内部文件字符串中的每个子字符串:

    for i in onlyfiles:
         if "postfix" in i:
              # do something

答案 1 :(得分:1)

python内置的glob module完全是为了这个。

import glob
path_to_folder = "/path/to/my/directory/"
matching_files = glob.glob(path_to_folder+"*postfix*")
for matching_file in matching_files:
    print(matching_file)

应打印出包含" postfix"的所有文件。 *是匹配任何内容的通配符。因此,此模式将与test_postfix.csv以及mypostfix.txt

匹配

答案 2 :(得分:0)

尝试以下

import os

itemList =  os.listdir("c:\users\test")
print [item for item in itemList if "postfix" in item]

如果需要深入了解目录,可以使用以下内容。

    import os

    filterList = []
    def SearchDirectory(arg, dirname, filename):
        for item in filename:
            if not os.path.isdir(dirname+os.sep+item) and "posix" in item:
                filterList.append(item)

    searchPath = "c:\users\test"
    os.path.walk(searchPath, SearchDirectory, None)

    print filterList