2017-09-07 17 views
0

あなたはこのスニペットを見て、私がどのようにproprly変数をPythonの文字列の中で連結できるか教えてください。Pythonで文字列を連結する

私は"Database Connections\\'service'.sde"service(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

あなたの質問に十分に回答があった場合は、最も有益な回答を[承諾]できます(https://stackoverflow.com/help/someone-answers)。 –

答えて

1

のように見えるこれは、Pythonの文字列の連結がどのように動作するかです:

sde = "Database Connections\\" + service + ".sde" 
mxd = arcpy.mapping.MapDocument("C:\\GIS\\Maps\\" + service + ".mxd") 
+0

Geekさん、ありがとうございましたが、2行目でエラーが発生しています。 –

+0

@MonaCoder '\'をエスケープして 'r'を削除し、更新された答えをチェックしてください。 –

3

私は思いますこれを行うより良い方法はを使用することです:

import os 
mxd = arcpy.mapping.MapDocument(os.path.join(*"C:\\GIS\\Maps\\".split('\\') 
                + ["{}.mxd".format(service)])) 

また、バックスラッシュをエスケープする必要があることに注意してください。

+1

あなたは混合方法ではありませんか?各コンポーネントを結合するべきではありません。 '\\\' '\\\' '\\\\\\\\\'オペレーティングシステム固有のもので、os.path.joinのポイントは、OSにとらわれないようにすることです。 – Alexander

+0

@Alexander私は...良い観察とありがとう。 –