2016-01-13 79 views
1

我需要連接特定的文件夾路徑用字符串,例如:EOL而串聯串+路徑

了mystring = 「blablabla」
路徑= 「C:\文件夾\任何\」

印刷(路徑+ MyString的)應該返回: C:\文件夾\什麼\ blablabla

不過,我總是得到EOL錯誤,這是一個必須的路徑有斜槓是這樣的:\,而不是像這樣:/

請告訴我方式,我嘗試了r'它不工作,我試圖添加雙「」,沒有任何工作,我無法弄清楚。

+0

不要用反斜槓結束路徑。如果你使用'os.path.join',你永遠不需要。 – ShadowRanger

回答

1

無論是使用轉義字符\\\

mystring = "blablabla" 
path = "C:\\folder\\whatever\\" 

conc = path + mystring 
print(conc) 
# C:\folder\whatever\blablabla 

或者,利用原始字符串的,但是從path結束的最後一個反斜槓移動的myString開始:

mystring = r"\blablabla" 
path = r"C:\folder\whatever" 

conc = path + mystring 
print(conc) 
# C:\folder\whatever\blablabla 

的原因是你自己的原始字符串方法不起作用,原始字符串可能不會以單個反斜槓結尾:

具體而言,原始文字不能以單個反斜槓結尾(因爲 反斜槓會轉義下面的引號字符)。

+0

謝謝你,真的幫助了我! –

2

始終使用os.path.join()加入路徑和r前綴允許單個反斜槓作爲Windows路徑分隔符:

r"C:\folder\whatever"

現在,現在需要反斜槓:

>>> import os 
>>> mystring = "blablabla" 
>>> path = r"C:\folder\whatever" 
>>> os.path.join(path, mystring) 
'C:\\folder\\whatever\\blablabla' 
+0

非常感謝您解釋! –

1

兩件事。首先,關於EOL錯誤,我最好的猜測 - 沒有訪問實際的python會話 - 是python抱怨,因爲你有一個未終止的字符串,由於最後的"字符被轉義,這將會發生,即使該字符串的前綴爲r。我的意見是,你應該刪除前綴,並正確地將所有反斜槓都像這樣:\\

在你的榜樣,path然後變成path = "C:\\folder\\whatever\\"

其次,代替人工拼接的路徑,你應該使用os.path.join

import os 
mystring = "blablabla" 
path = "C:\\folder\\whatever" 
print os.path.join(path, mystring) 

## prints C:\\folder\\whatever\\blablabla 

注意os.path將使用路徑convetions操作系統在運行應用程序的地方,所以如果你在Linux上運行它,上面的代碼會產生錯誤的/意想不到的結果。查看我已鏈接的頁面頂部的註釋以獲取詳細信息。