我找得到,看起來像一個變量的文件名的最佳方式:得到一個字符串的字符(右一)
a = 'this\is\a\path\to\file'
print a[-4:]
我試圖讓「文件」只是打印提取的最後四個字母[-4:],但結果是:
ile
如果我做一個打印[-5:]我得到:
ofile
我區ess python有一個反斜槓的問題,轉義它並沒有幫助。你會如何解決這個問題?你會按照我的方式去做,還是通過從右向左搜索'\'來獲得「文件」的性能更高?
我找得到,看起來像一個變量的文件名的最佳方式:得到一個字符串的字符(右一)
a = 'this\is\a\path\to\file'
print a[-4:]
我試圖讓「文件」只是打印提取的最後四個字母[-4:],但結果是:
ile
如果我做一個打印[-5:]我得到:
ofile
我區ess python有一個反斜槓的問題,轉義它並沒有幫助。你會如何解決這個問題?你會按照我的方式去做,還是通過從右向左搜索'\'來獲得「文件」的性能更高?
\f
是Python中的單個字符(form-feed)。嘗試加倍您的反斜槓:
a = 'this\\is\\a\\path\\to\\file'
或等價:
a = r'this\is\a\path\to\file'
是print a[-4:]
後,將打印file
。
>>> a = r'this\is\a\path\to\file'
>>> print a[-4:]
file
>>> 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在當前操作系統中返回分隔符。
已解決。我怎麼能忘記......謝謝! – Johnny 2013-04-20 08:43:34
還有一種方法不會改變變量a嗎?像r'(a)'...因爲我不能編輯一個,我需要使用它非轉義 – Johnny 2013-04-20 08:47:09
@JohnBrown它會逃脫已經不用擔心,它只是當你手動寫錯了,就像它出來錯了但Python模塊將產生正確的結果。也是最好的方式'os.path.splitext' – jamylak 2013-04-20 09:13:09