>>> t1 = "abcd.org.gz"
>>> t1
'abcd.org.gz'
>>> t1.strip("g")
'abcd.org.gz'
>>> t1.strip("gz")
'abcd.org.'
>>> t1.strip(".gz")
'abcd.or'
为什么
'.org'
的 'g'
不见了?strip(".gz")
从字符串的开头和结尾移除任意一个字符 .
, g
和 z
。
x.strip(y)
会从字符串x的开头和结尾删除所有在字符串y中出现的字符。
这意味着:
'foo42'.strip('1234567890') == 'foo'
因为'4'
和'2'
都出现在'1234567890'
中。
如果您想删除文件扩展名,请使用os.path.splitext
。
>>> import os.path
>>> t1 = "abcd.org.gz"
>>> os.path.splitext(t1)
('abcd.org', '.gz')
.removeprefix()
和.removesuffix()
,分别用于移除字符串的开头和结尾。这次方法名称非常清晰明了,可以很好地表述它们所执行的操作。>>> print (sys.version)
3.9.0
>>> t1 = "abcd.org.gz"
>>> t1.removesuffix('gz')
'abcd.org.'
>>> t1
'abcd.org.gz'
>>> t1.removesuffix('gz').removesuffix('.gz')
'abcd.org.' # No unexpected effect from last removesuffix call
'abcd.org.gz'.strip('.gzor')
会得到'abcd'
-- 令人惊讶的是,除非你注意到S.strip([chars])
中的[]
并且记得字符串只是字符序列,否则文档字符串并不太有帮助。很好的解释,也有很好的替代方案。 - Wayne Werner[]
不是表示“可选”的意思吗? - kennytm