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