EOL连接字符串+路径

时间:2016-01-13 02:14:54

标签: python string concatenation eol

我需要使用字符串连接特定的文件夹路径,例如:

mystring =“blablabla”
path =“C:\ folder \ whatever \”

打印(path + mystring)应该返回: 的 C:\文件夹\任何\ blablabla

但是我总是得到EOL错误,并且必须有这样的斜杠:\而不是这样:/

请告诉我方式,我试过r'它不起作用,我尝试添加双“”,没有任何作用,我无法弄明白。

3 个答案:

答案 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'

答案 1 :(得分: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

您自己的原始字符串方法不起作用的原因是原始字符串可能不会以单个反斜杠结尾:

  

具体来说,原始文字不能以单个反斜杠结尾(因为   反斜杠会逃避以下引号字符。)

来自

答案 2 :(得分:1)

两件事。

首先,关于EOL错误,我最好的猜测 - 无法访问实际的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将使用运行应用程序的操作系统的路径会话,因此如果您运行上述代码会产生错误/意外结果,例如, Linux操作系统。检查我已链接的页面顶部的注释以获取详细信息。