【发布时间】:2016-05-16 11:03:28
【问题描述】:
我有一个目录,其中包含许多 .txt 文件,名称如下:
factor1.txt
factor2.txt
factor3.txt
factor4.txt
factor1-factor2.txt
factor2-factor3.txt
现在我想创建一个函数,它接受一个因子名称列表,比如searchFiles(listOfFactorNames),然后返回该目录中所有文件的列表,这些文件的名称至少包含因子列表中指定的一个因子名称名字。
例如如果listOfFactorNames=['factor1','factor4'] 那么searchFiles(listOfFactorNames) 应该返回列表['factor1.txt','factor4.txt','fator1-factor2.txt']
到目前为止,我已经写了以下内容:
def search_for_files(listOfFactorNames,path):
listOfFiles=os.listdir(path)
resList=[]
for f in listOfFiles:
for factor in listOfFactorNames:
if factor in f:
resList.append(f)
return list(set(resList)
然而,这似乎不是很优雅,我想知道是否有更简单/更智能的方法来实现同样的效果。特别是,我从结果列表中删除重复项的最后一行。
感谢您的帮助。
【问题讨论】:
-
为什么不直接使用 glob?
-
返回的行中缺少括号。
标签: python python-2.7 function