1

そのため、ファイル パスである文字列のリストがあり、.zip で終わらないパスのみを出力したいと考えています。これはリストであり、os.chdir("/mydir") で見つからなかったため、glob または os を使用できません。これは私が試したもので、うまくいきません。

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 に答える