15

Pythonで文字列の特定の文字の後のすべてを削除するにはどうすればよいですか? たとえば、ファイル パスといくつかの余分な文字を含む文字列があります。.zip の後のすべてを削除するにはどうすればよいですか? rsplitとを試しましsplitたが、余分な文字を削除するときに .zip が含まれていませんでした。

助言がありますか?

4

5 に答える 5

6

スライスを使用する:

s = 'test.zip.xyz'
s[:s.index('.zip') + len('.zip')]
=> 'test.zip'

上記を小さなヘルパー関数に簡単にパックできます。

def removeAfter(string, suffix):
    return string[:string.index(suffix) + len(suffix)]

removeAfter('test.zip.xyz', '.zip')
=> 'test.zip'
于 2013-07-26T21:39:12.450 に答える
1

モジュールを使用できreます:

import re
re.sub('\.zip.*','.zip','test.zip.blah')
于 2013-07-26T21:44:05.807 に答える
1

このための単純なラムダ関数を作成するのは簡単だと思います。

mystrip = lambda s, ss: s[:s.index(ss) + len(ss)]

次のように使用できます。

mystr = "this should stay.zipand this should be removed."
mystrip(mystr, ".zip") # 'this should stay.zip'
于 2013-07-26T21:50:26.693 に答える