2015-04-25 77 views
5

由於某些原因,os.path.isfile()偶爾會返回false對於某些現有的Windows文件。起初,我認爲文件名中的空格造成了問題,但是其他具有空格的文件路徑工作正常。這是來自Python控制檯的說明此問題的副本:對於現有的Windows文件,os.path.isfile()返回false

>>> import os 
>>> os.path.isfile("C:\Program Files\Internet Explorer\images\bing.ico") 
False 
>>> os.path.isfile("C:\Program Files\Internet Explorer\images\PinnedSiteLogo.contrast-black_scale-80.png") 
True 

我該如何解決這個問題?

回答

9

\b中的字符串表示退格。如果你想在一個字符串中使用實際的反斜槓,他們需要用更多的反斜槓(\\而不是\)轉義,或者你需要使用原始字符串(r"..."而不是"...")。對於文件路徑,我建議使用正斜槓。

+0

以下工作: '>>> os.path.isfile(R 「C:\ Program Files文件\的Internet Explorer \影像\ bing.ico」) TRUE' 但是,路徑是一個變量,我不能用變量與r。 –

+0

@NemoXXX它是真的。它等於''C:\\ Program Files \\ Internet Explorer \\ images \\ bing.ico' – skyline75489

+0

@ skyline75489:以r開頭的路徑返回true,但我需要一個函數,因爲路徑是一個變量, os.path.normpath()''返回''C:\\ Program Files \\ Internet Explorer \\ images \ x08ing.ico''不起作用,因爲小寫字母b是\ xAA。 –

相關問題