获取字符串的字符(从右侧)

时间:2013-04-20 08:40:19

标签: python string

我正在寻找获取类似变量的文件名的最佳方法:

 a = 'this\is\a\path\to\file'
 print a[-4:]

我试图通过打印[-4:]来提取最后四个字母来获取'文件',但结果是:

 ile

如果我打印[-5:]我得到:

 ofile

我猜python有反斜杠的问题,逃避它没有帮助。你怎么解决这个问题?你会按照我的方式去做,还是通过从右到左搜索“\”获得“文件”的更高效的方式?

3 个答案:

答案 0 :(得分:4)

\f是Python中的单个字符(换页)。尝试加倍你的反斜杠:

a = 'this\\is\\a\\path\\to\\file'

或等同于:

a = r'this\is\a\path\to\file'

之后print a[-4:]将打印file

答案 1 :(得分:2)

>>> import os
>>> a = 'A/B'
>>> os.path.normpath(a)
'A\\B'
>>> a = 'A/./B'
>>> os.path.normpath(a)
'A\\B'
>>> a = 'A\B'
>>> os.path.normpath(a)
'A\\B'
>>> a = 'A\\B'
>>> os.path.normpath(a)
'A\\B'

然后不使用[-4:]更好的做法是使用'A // B'.split(os.path.sep)[ - 1]然后你确定你得到了路径的最后一部分。 os.path.sep返回当前操作系统中的分隔符。

答案 2 :(得分:1)

>>> a = r'this\is\a\path\to\file'
>>> print a[-4:]
file