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这个函数通过foundliles解析,这是我已经解析了大约20多个文件的文件夹中的文件列表。我需要解析每个以“ .UnitTests.vbproj”结尾的文件的列表。但是,我无法使它正常工作。任何建议将不胜感激!Edit1:这就是我现在编写的代码,并且我收到了错误的错误消息框,提示“ 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
2 回答
慕尼黑8549860
TA贡献1818条经验 获得超11个赞
您已将列表转换为字符串。循环遍历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')]
SMILET
TA贡献1796条经验 获得超4个赞
我真的不知道您的“ 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
添加回答
举报
0/150
提交
取消