python中的Lstrip函数

Adr*_*ian 1 python string

我遇到以下代码的问题:

name = "epubtxt\ursita.txt"
Run Code Online (Sandbox Code Playgroud)

我想删除目录,以获得输出 ursita.txt

我正在这样做:

name.lstrip('epubtxt\\')
Run Code Online (Sandbox Code Playgroud)

主要问题是我得到了这个输出:

rsita.txt

这里出了什么问题?

Mik*_*eyn 5

s1.lstrip(s2)不会s2从 的左侧剥离整个s1. 它的作用是剥离所有包含在字符s2从左边的s1

例子:

'aaabbbccc'.lstrip('a') == 'bbbccc'
'aaabbbccc'.lstrip('ac') == 'bbbccc'
'aaabbbccc'.lstrip('ab') == 'ccc'
Run Code Online (Sandbox Code Playgroud)

在您的示例中,'epubtxt\\'包含字符u,因此u后面的反斜杠被剥离。

你可能需要的是:

if name.startswith('epubtxt\\'):
    name[len('epubtxt\\'):]
Run Code Online (Sandbox Code Playgroud)

  • 可能想把它放在一个有条件的 `if name.startswith(...):` 中。+1 不管。 (2认同)
  • Python 有一种将文件名与路径分开的正确方法:[`os.path.basename(path)`](https://docs.python.org/3/library/os.path.html#os.path.basename )。奖励是无论操作系统如何它都可以工作。 (2认同)