请你看一下这个片段,让我知道如何在python中将字符串中的变量连接起来?
我想在service
和"Database Connections\\'service'.sde"
(r"C:\GIS\Maps\'.+service+.'.mxd")
service ="Electric"
sde = "Database Connections\\'service'.sde"
mxd = arcpy.mapping.MapDocument(r"C:\GIS\Maps\'.+service+.'.mxd")
所以输出看起来像
sde = "Database Connections\\Electric.sde"
mxd = arcpy.mapping.MapDocument(r"C:\GIS\Maps\Electric.mxd")
答案 0 :(得分:3)
我认为更好的方法是使用os.path.join
:
import os
mxd = arcpy.mapping.MapDocument(os.path.join(*"C:\\GIS\\Maps\\".split('\\')
+ ["{}.mxd".format(service)]))
另外,请注意您的反斜杠需要转义。
答案 1 :(得分:1)
这就是Python的字符串连接的工作原理:
sde = "Database Connections\\" + service + ".sde"
mxd = arcpy.mapping.MapDocument("C:\\GIS\\Maps\\" + service + ".mxd")
答案 2 :(得分:1)
绕过raw strings can't end with a single backslash:
问题的另一种选择r'C:\GIS\Maps\%s.mxd' % service
和
r'C:\GIS\Maps\{}.mxd'.format(service)
两者都工作正常,以字母串结尾的反斜杠来解决问题。