2011-02-11 110 views
0

我想将从命令窗口读取的路径名转换为文件名。 例如,转换C:\ TEMP \文件\临时文件到临时文件最后剥离“”

我试图做一些喜欢 -

filename=tempfilename.lstrip('\') #this gave me an error 

filename=tempfilename.lstrip('\\') #and this did nothing 

我在做什么错? 感谢您的帮助!

+0

我不是Python专家,但也许\是一个转义字符。请尝试\\。你也可以重新检查lstrip是否符合你的想法。 – 2011-02-11 18:02:21

+0

@Jonas:不,这是无效的。所有原始字符串都是,不会评估转义序列。 `r'\'`是一个错误(你逃避了最后的引号),但'r'\\'`是字符串“\\”。 – Blixt 2011-02-11 18:07:53

+0

@Blixt:你是对的。 – 2011-02-12 16:35:09

回答

5

在Python中,与其他大多数语言一样,字符串可以包含反斜线转义的字符序列,因此您需要编写'\\'(=代表一个单独的反斜杠),而不是'\'

二,没有方法叫做listrip。对于最后的剥离,您显然需要使用rstrip,而不是lstrip。您可以使用os.path.basename

0

与替换 '\' '\\',它应该工作:)

或者是您确信你将​​永远有一个 '\' 来删除,

filename = tempfilename[:-1]

编辑: oops。真的没有读过q。 tempfilename.split()[-1]

我的拳头回答回答称号,并与strip建议适合的,但在实际的问题,它 说:

例如,转换C:\ TEMP \文件\临时文件到临时文件

。 ...

1

lstrip()删除主要字符。也就是说,它会将\\\\\a\b\c\转换为a\b\c\。这不是你想要的。使用os.path.basename()