2012-10-18 110 views
0

當設置字符串爲Windows Python中的文件路徑,它需要被格式化爲:Windows文件路徑中的反斜槓?

C:\\Users\\ 

還是不逃逸無法在Windows應用?我的腳本目前在線import os處給我類似「非ASCII字符」的東西,所以我不能真正測試這個。

+0

你可以只用向前join()功能斜槓,而不是 –

回答

2

簡短的回答:使用正斜槓,而不是由gnibbler建議。

在使用原始字符串:

使用原始字符串通常工作得很好,但你仍必須注意的是r"\""轉義字符quoute。也就是說,原始字符串不是絕對原始的,這就是爲什麼你不能在反斜槓(或任何奇數個反斜槓)在字符串末尾使用'\'(反斜槓將轉義下面的引號字符)。

In [9]: a=r'\\' 

In [10]: b=r'\\\' 
    File "<ipython-input-10-9f86439e68a3>", line 1 
    b=r'\\\' 
      ^
SyntaxError: EOL while scanning string literal 


In [11]: a 
Out[11]: '\\\\' 
1

嘗試增加一個 「R」,做如下:

path = r"C:\mypaht\morepaht\myfie.file" 
+2

不會對問題陳述的工作。嘗試r「C:\ Users \」 – Abhijit

+0

適用於我我認爲:f = open(「C:\ a \ a.txt」) 回溯(最近呼叫最後): 文件「」,第1行 IOError:[Errno 22] invalid mode('r')or filename:'C:\ x07 \ x07.txt' f = open(r「C:\ a \ a.txt」) – Netwave

+3

@DanielSanchez,raw字符串不能以'\'結尾 –

1

您不應該這樣構建文件路徑。它不便攜和容易出錯。

使用來自os.path

import os.path 
path = os.path.join('C:', 'Users', 'name') 
+0

這是否自動在Windows上使用反斜槓,並在每個其他操作系統上縮減? – tkbx

+0

@tkbx是的,這是使用'os.path'模塊的關鍵。 – Ber

相關問題