我正在寻找获取类似变量的文件名的最佳方法:
a = 'this\is\a\path\to\file'
print a[-4:]
我试图通过打印[-4:]来提取最后四个字母来获取'文件',但结果是:
ile
如果我打印[-5:]我得到:
ofile
我猜python有反斜杠的问题,逃避它没有帮助。你怎么解决这个问题?你会按照我的方式去做,还是通过从右到左搜索“\”获得“文件”的更高效的方式?
答案 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