1

所以我有一个作为文件路径的字符串列表,我只想打印不以 .zip 结尾的路径。我不能使用 glob 或 os,因为这是一个列表,并且不是通过 os.chdir("/mydir") 找到的。这是我尝试过的,但它不起作用。

list = ['/user/adi/test.zip', '/user/adi/test.csv', /user/adi/testing.zip, /user/adi/testing.txt]
for lis in list:
    if lis not in ['.zip']:
        print lis

无论如何让我这样做?

提前致谢 :)

4

2 回答 2

7

你可以使用:

if not lis.endswith('.zip'):
   print lis

os.path.splitext也可能有用,具体取决于您在做什么。


正如评论中所指出的,如果您要过滤列表,您可以简单地使用上面的表达式作为列表理解的一部分:

list_without_zip = [ x for x in list_with_zip if not x.endswith('.zip') ]
于 2012-11-08T15:31:44.320 回答
2
print filter(lambda x:not x.endswith(".zip") , my_list)

或者如果你想让它看起来一样......

print "\n".join(filter(lambda x:not x.endswith(".zip") , my_list))
于 2012-11-08T15:34:09.057 回答