6

我是 python 编程的新手,试图剥离包含正斜杠字符的字符串,我期望输出为“/stack”,但结果如下。你能帮我如何实现预期的输出吗?还有其他简单的方法可以实现相同的目标吗?

>>> name='/stack/overflow'
>>> sub ='/overflow'
>>> name.strip(sub)
'stack'

在此先感谢 hema

4

2 回答 2

8

.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'
于 2013-10-24T17:49:39.577 回答
1

首先你需要检查OS你使用的是哪个,

如果它的 Linux/Unix

通常文件路径由/

所以你可以简单地使用,

>>>name = '/stack/overflow'

>>>name.split(os.sep)  # Here os.sep is nothing but "/"

['', 'stack', 'overflow']

如果是窗户,

只需使用

>>> name.split("/")
['', 'stack', 'overflow']
于 2013-10-24T18:06:08.323 回答