Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/python-3.x/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 3.x Python3 strip()获取意外结果_Python 3.x_Encode_Strip - Fatal编程技术网

Python 3.x Python3 strip()获取意外结果

Python 3.x Python3 strip()获取意外结果,python-3.x,encode,strip,Python 3.x,Encode,Strip,这是个奇怪的问题 to_be_stripped="D:\\Users\\UserKnown\\PycharmProjects\\ProjectKnown\\PT\\collections\\120" 和下面的两个字符串: s1="D:\\Users\\UserKnown\\PycharmProjects\\ProjectKnown\\PT\\collections\\120\\[Content_Types].xml" s2="D:\\Users

这是个奇怪的问题

to_be_stripped="D:\\Users\\UserKnown\\PycharmProjects\\ProjectKnown\\PT\\collections\\120"
和下面的两个字符串:

s1="D:\\Users\\UserKnown\\PycharmProjects\\ProjectKnown\\PT\\collections\\120\\[Content_Types].xml"
s2="D:\\Users\\UserKnown\\PycharmProjects\\ProjectKnown\\PT\\collections\\120\\_rels\.rels"
当我使用以下命令时:

s1.strip(to_be_stripped)
s2.strip(to_be_stripped)
我得到这些输出:

'[Content_Types].x'
'_rels\\.'
如果我使用
lstrip()
,它们将是:

'[Content_Types].xml'
'_rels\\.rels'
哪个是正确的输出。 但是,如果我们将所有已知的
项目
替换为
宙斯管道

to_be_stripped="D:\\Users\\UserKnown\\PycharmProjects\\zeus_pipeline\\PT\\collections\\120"
以及:

s2.lstrip(待剥离)
将是
'.rels'


如果我使用
/
而不是
\\
没有任何问题。我想知道为什么会出现这个问题。

strip
并不意味着完全删除整个字符串。相反,您给它一个字符串,该字符串中的每个字符都将从要剥离的字符串的开头和结尾处删除

在您的例子中,要剥离的变量
包含字符
m
l
,因此这些字符从
s1
的末尾剥离。但是,它不包含字符
x
,因此剥离将停止在该位置,并且不会删除超出该位置的字符

退房。公认的答案可能比您需要的更广泛-我喜欢另一位用户建议使用
replace
而不是
strip
。这看起来像:

s1.replace(to_be_stripped, "")

我明白了!谢谢你的帮助,不用担心。有很多方法可以做任何你想做的事情,所以很容易选择错误的方法!
s1.replace(to_be_stripped, "")