我需要连接特定的文件夹路径用字符串,例如: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