2013-02-26 58 views
3

因此,我試圖將os.path.isfileos.path.exists合併到我的代碼中,並且在搜索文件名時成功找到某些常規文件(pdf,png)從一封信開始。Python:os.path.isfile不會識別以數字開頭的文件

我正在使用的文件命名標準(並且由於用戶而無法更改)以數字開頭,隨後無法使用相同的方法找到。有沒有辦法讓.isfile.exists可以發現這些文件?

我正在搜索的文件是.txt文件。

os.path.isfile("D:\Users\spx9gs\Project Work\Data\21022013AA.txt") 

    os.path.isfile("D:\Users\spx9gs\Project Work\Data\AA21022013.txt") 

返回:

+0

這肯定不會爲我工作。 'os.path.exists'和'os.path.isfile'都能識別以數字開頭的文件。 – 2013-02-26 11:40:07

+0

不,'isfile()'適用於以數字開頭的文件名。請問平臺和測試用具? – 2013-02-26 11:40:14

+0

'os.path.isfile()'對我來說工作正常01.txt文件 – Junuxx 2013-02-26 11:40:20

回答

14

您需要使用原始字符串,或逃避你的反斜線。在文件名:

"D:\Users\spx9gs\Project Work\Data\21022013AA.txt" 

\210將被解釋爲一個八進制轉義代碼,這樣你就不會得到正確的文件名。

這些要麼將工作:

r"D:\Users\spx9gs\Project Work\Data\21022013AA.txt" 
"D:\\Users\\spx9gs\\Project Work\\Data\\21022013AA.txt" 
+6

或者,第3個選項:您可以使用正斜槓作爲路徑分隔符。 – 2013-02-26 11:44:28