我需要連接特定的文件夾路徑用字符串,例如:EOL而串聯串+路徑
了mystring = 「blablabla」
路徑= 「C:\文件夾\任何\」
印刷(路徑+ MyString的)應該返回: C:\文件夾\什麼\ blablabla
不過,我總是得到EOL錯誤,這是一個必須的路徑有斜槓是這樣的:\,而不是像這樣:/
請告訴我方式,我嘗試了r'它不工作,我試圖添加雙「」,沒有任何工作,我無法弄清楚。
我需要連接特定的文件夾路徑用字符串,例如:EOL而串聯串+路徑
了mystring = 「blablabla」
路徑= 「C:\文件夾\任何\」
印刷(路徑+ MyString的)應該返回: C:\文件夾\什麼\ blablabla
不過,我總是得到EOL錯誤,這是一個必須的路徑有斜槓是這樣的:\,而不是像這樣:/
請告訴我方式,我嘗試了r'它不工作,我試圖添加雙「」,沒有任何工作,我無法弄清楚。
無論是使用轉義字符\\
爲\
:
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
的原因是你自己的原始字符串方法不起作用,原始字符串可能不會以單個反斜槓結尾:
具體而言,原始文字不能以單個反斜槓結尾(因爲 反斜槓會轉義下面的引號字符)。
從
謝謝你,真的幫助了我! –
始終使用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'
非常感謝您解釋! –
兩件事。首先,關於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上運行它,上面的代碼會產生錯誤的/意想不到的結果。查看我已鏈接的頁面頂部的註釋以獲取詳細信息。
不要用反斜槓結束路徑。如果你使用'os.path.join',你永遠不需要。 – ShadowRanger