为了账号安全,请及时绑定邮箱和手机立即绑定

为什么这个循环不起作用

为什么这个循环不起作用

繁星淼淼 2021-03-18 18:13:53
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')]


查看完整回答
反对 回复 2021-03-24
?
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


查看完整回答
反对 回复 2021-03-24
  • 2 回答
  • 0 关注
  • 181 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信