我有一个以不同扩展名结尾的字符串列表,如何告诉Python不打印.zip字符串

时间:2012-11-08 15:29:43

标签: python python-2.7

所以我有一个文件路径的字符串列表,我想只打印不以.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

无论如何我要这样做?

提前致谢:)

2 个答案:

答案 0 :(得分: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') ]

答案 1 :(得分:2)

print filter(lambda x:not x.endswith(".zip") , my_list)

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

print "\n".join(filter(lambda x:not x.endswith(".zip") , my_list))