def cut(path):
test = str(foundfiles)
newList = [s for s in test if test.endswith('.UnitTests.vbproj')]
for m in newList:
print m
return newList
此函数解析findliles,这是我已经解析了大约20多个文件的文件夹中的文件列表。我需要解析每个文件的列表,以“.UnitTests.vbproj”结尾。但是,我无法让它工作。任何建议将不胜感激!
Edit1:这就是我现在编写的代码,我得到了atrribute错误消息框,说'tuple'对象没有属性'endswith'
def cut(path):
test = foundfiles
newList = [s for s in foundfiles if s.endswith('.UnitTests.vbproj')]
for m in newList:
print m
return newList
答案 0 :(得分:2)
您将列表转换为字符串。循环遍历test
会改为为您提供个性化字符:
>>> foundfiles = ['foo', 'bar']
>>> for c in str(foundfiles):
... print c
...
[
'
f
o
o
'
,
'
b
a
r
'
]
无需将foundfiles
转换为字符串。您还需要测试列表的元素,而不是test
:
newList = [s for s in foundfiles if s.endswith('.UnitTests.vbproj')]
答案 1 :(得分:0)
我真的不知道你的'foundfiles'是什么类型的。 也许这种方式会对你有所帮助:
def cut(path):
import os
newlist = []
for parent,dirnames,filenames in os.walk(path):
for FileName in filenames:
fileName = os.path.join(parent,FileName)
if fileName.endswith('.UnitTests.vbproj'):newlist.append(fileName)
return newlist