[英]Lstrip function in python
我的以下代码有问题:
name = "epubtxt\ursita.txt"
而且我想删除目录,以获取输出ursita.txt
我正在这样做:
name.lstrip('epubtxt\\')
主要问题是我得到以下输出:
rsita.txt
这是怎么了?
s1.lstrip(s2)
不会从s1
的左侧剥离整个s2
。 它的作用是从s1
的左侧剥离s2
包含的所有字符 。
例子:
'aaabbbccc'.lstrip('a') == 'bbbccc'
'aaabbbccc'.lstrip('ac') == 'bbbccc'
'aaabbbccc'.lstrip('ab') == 'ccc'
在您的示例中, 'epubtxt\\\\'
包含字符u
,因此反斜杠后的u
被去除。
您可能需要的是:
if name.startswith('epubtxt\\'):
name[len('epubtxt\\'):]
u
被剥夺的原因与\\u\u003c/code>或unicode不相关。
问题在于,
strip
功能采用要剥离的字符列表,而不考虑其顺序(在函数调用中的单词中)。 换句话说,在实施例中,功能将剥离匹配任何 “E”,“P”的,“U”,等等,直到其中一个字符不匹配的任何字符。
别人已经告诉您lstrip
为什么不起作用。 合适的解决方案是拆分并采用最后一个组件:
name.split('\\')[-1]
# "ursita.txt"
可能更容易做到的是在\\
上分割字符串。 这样,您就不会得到任何错误匹配(因为Windows上的文件名不能包含\\)。
可以使用以下代码完成此操作:
name = "epubtxt\ursita.txt"
name = name.split("\\")
name = name[-1] # use the last element of the list, which will be the absolute file.
>>> name
'ursita.txt'
我在第二行中使用了双斜杠-这是因为\\
是转义字符,但我们不希望它转义任何内容。 因此我们逃脱了。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.