2016-06-20 1 views
2

を使用して、私は、ファイルパスの束持っている:私は数のID(2001)を定義することができれば一度ID番号を定義し、それをすべてのファイルパス

shapefile = "C:\\file\\path \\here\\this\\one\\is\\different\\2001_6W.shp" 
place1 = "C:\\file\\path\\here\\place1_2001.shp" 
place2 = "C:\\file\\path\\here\\place2_2001.shp" 
place3 = "C:\\file\\path\\here\\place3_2001.shp" 

が、私はそれを希望し、その後、それが中で使用されてきましたファイル名は次のようになります。

ID = 2001 

shapefile = "C:\\file\\path \\here\\this\\one\\is\\different\\ID_6W.shp" 
place1 = "C:\\file\\path\\here\\place1_ID.shp" 
place2 = "C:\\file\\path\\here\\place2_ID.shp" 
place3 = "C:\\file\\path\\here\\place3_ID.shp 

これを行う方法はありますか?私は私が非常によくしたいことを説明したかどうか分かりません。

+0

正規表現を使用することはできますが、なぜそうしたいのですか? "C:\\ file \\ path \\ here \\ place1 _" + ID + "shp"のような文字列を追加するだけでいいのですか? – OneRaynyDay

答えて

0
ID = "2001" 

place1 = "C:\\file\\path\\here\\place1_" + ID + ".shp" 

ID値 "2001"を引用符で囲んで文字列にして、他の文字列に追加することができます。それ以外の場合は、文字列に整数を追加しようとするときに発生するTypeErrorになります。

3

あなたはそうのように、書式設定文字列を使用する必要があります。

ID = 2001 
# Positionally replace {} 
place1 = "c:\\file\\path\\here\\place1_{}.shp".format(ID) 
# It also works with keywords! 
place2 = "c:\\file\\path\\here\\place2_{id}.shp".format(id=ID) 

これは時々、整数または文字列以外の時間を利用したい場合には、それは、型あいまいにすることができます。また、あなたが好きなだけ多くの部分を扱うことができるので、ループすることができます。

ID = 2001 

places = {} 
for place_number in range(10): 
    places[place_number] = "c:\\file\\path\\here\\place{}_{}.shp".format(place_number, ID) 
    # OR # 
    places[place_number] = "c:\\file\\path\\here\\place{place}_{id}.shp".format(place=place_number, id=ID) 

EDIT:文字列フォーマットへのより多くがあります、より多くのためpython documentationを参照してください。

+0

実際に文字列の書式設定のバージョンを正しく取得していただきありがとうございます。 – Chris

関連する問題