Pythonで文字列の特定の文字の後のすべてを削除するにはどうすればよいですか? たとえば、ファイル パスといくつかの余分な文字を含む文字列があります。.zip の後のすべてを削除するにはどうすればよいですか? rsplit
とを試しましsplit
たが、余分な文字を削除するときに .zip が含まれていませんでした。
助言がありますか?
Pythonで文字列の特定の文字の後のすべてを削除するにはどうすればよいですか? たとえば、ファイル パスといくつかの余分な文字を含む文字列があります。.zip の後のすべてを削除するにはどうすればよいですか? rsplit
とを試しましsplit
たが、余分な文字を削除するときに .zip が含まれていませんでした。
助言がありますか?
スライスを使用する:
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'
モジュールを使用できre
ます:
import re
re.sub('\.zip.*','.zip','test.zip.blah')
このための単純なラムダ関数を作成するのは簡単だと思います。
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'