python中的Lstrip函数

2024-10-17 06:15:16 发布

您现在位置:Python中文网/ 问答频道 /正文

我对以下代码有问题:

name = "epubtxt\ursita.txt"

我想删除这个目录,得到输出ursita.txt

我是这样做的:

name.lstrip('epubtxt\\')

主要问题是我得到了以下输出:

rsita.txt

这里出了什么问题?你知道吗


Tags: 代码name目录txtlstripepubtxtrsitaursita
3条回答

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\\'):]

更简单的方法是在\上拆分字符串。这样您就不会得到任何错误的匹配(因为在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'

我在第二行使用了双斜杠-这是因为\是转义字符,但我们不希望它转义任何内容。因此我们逃避了逃避。你知道吗

剥离u的原因与\u或unicode无关。问题是strip函数获取要剥离的字符列表,而不管它们的顺序如何(在函数调用中的单词on中)。换言之,在您的示例中,该函数将剥离与“e”、“p”、“u”等的任何匹配的任何字符,直到其中一个字符不匹配为止。你知道吗

相关问题 更多 >