我是新的python编程,试图剥离包含正斜杠字符的字符串,我期望输出为'/堆栈',但给出如下结果。你能帮我实现预期产量吗?还有其他简单的方法可以实现吗?如何去掉包含正斜杠的字符串?
>>> name='/stack/overflow'
>>> sub ='/overflow'
>>> name.strip(sub)
'stack'
在此先感谢 HEMA
我是新的python编程,试图剥离包含正斜杠字符的字符串,我期望输出为'/堆栈',但给出如下结果。你能帮我实现预期产量吗?还有其他简单的方法可以实现吗?如何去掉包含正斜杠的字符串?
>>> name='/stack/overflow'
>>> sub ='/overflow'
>>> name.strip(sub)
'stack'
在此先感谢 HEMA
的.strip
方法不会做你认为它的作用:
Docstring:
S.strip([chars]) -> string or unicode
Return a copy of the string S with leading and trailing
whitespace removed.
If chars is given and not None, remove characters in chars instead.
If chars is unicode, S will be converted to unicode before stripping
所以,你在做什么时说:“除去/ O, v,e,r,f,l,o和w从该字符串的开头或结尾开始。“
相反,尝试对/
分裂,采取所有,但最后一个元素,并重新加入:
In [12]: '/'.join("/stack/overflow".split('/')[:-1])
Out[12]: '/stack'
如果你真的只是想删除子“/溢出”,你可以这样做:
In [15]: "/stack/overflow".replace('/overflow', '')
Out[15]: '/stack'
首先,你需要检查你所使用的OS
,
如果它的Linux/Unix的
正常的文件路径是通过/
,所以你可以简单地使用表示,
>>>name = '/stack/overflow'
>>>name.split(os.sep) # Here os.sep is nothing but "/"
['', 'stack', 'overflow']
,如果它的Windows,
只使用
>>> name.split("/")
['', 'stack', 'overflow']
如果他真的想一切 - 除了最后一个,我可以使用'os.path.split'代替。 – DSM
@DSM假设他或她实际上要求的是操作系统目录路径,而不是,例如HTTP路径或仅由正斜杠分隔的字符串。另外,在Windows上会失败:“os.path模块始终是适用于Python运行的操作系统的路径模块,因此可用于本地路径。” :) –
@Christian很好的解释谢谢:) – user1559873