我是python编程的新手,尝试去除包含正斜杠字符的字符串,我希望输出为'/ stack',但给出如下结果。你能帮助我如何实现预期的输出。还有其他任何简单的方法来实现同样的目标。
>>> name='/stack/overflow'
>>> sub ='/overflow'
>>> name.strip(sub)
'stack'
提前致谢 HEMA
答案 0 :(得分:7)
.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'
如果你真的只想删除子字符串'/ overflow',你可以这样做:
In [15]: "/stack/overflow".replace('/overflow', '')
Out[15]: '/stack'
答案 1 :(得分:0)
首先,您需要检查您正在使用的OS
,
如果是Linux / Unix
通常文件路径由/
所以你可以简单地使用,
>>>name = '/stack/overflow'
>>>name.split(os.sep) # Here os.sep is nothing but "/"
['', 'stack', 'overflow']
如果是窗户,
只需使用
>>> name.split("/")
['', 'stack', 'overflow']