2016-06-20 12 views
2

mit habe ich eine Reihe von Dateipfaden:eine ID-Nummer einmal definieren und es jeden Dateipfad

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" 

Ich würde es, wenn ich die Nummer ID (2001) definieren könnte und hat es dann in verwendet werden der Dateiname, wie folgt:

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 

Gibt es eine Möglichkeit, dies zu tun? Ich bin mir nicht sicher, ob ich das, was ich will, sehr gut erklärt habe.

+0

Sie können dafür einen regulären Ausdruck verwenden - aber warum möchten Sie das? Warum füge man die Zeichenfolge nicht einfach an "C: \\ file \\ path \\ here \\ place1 _" + ID + ". Shp"? – OneRaynyDay

Antwort

0
ID = "2001" 

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

Beachten Sie die Anführungszeichen um den ID-Wert "2001", die es zu einer Zeichenfolge macht, die Sie zu anderen Zeichenfolgen hinzufügen können. Andernfalls würden Sie mit einem TypeError enden, der auftreten wird, wenn Sie versuchen, Ganzzahlen zu Strings hinzuzufügen.

3

sollten Sie String-Formatierung verwenden, etwa so:

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) 

Dieses es typ mehrdeutig sein können, falls Sie manchmal eine ganze Zahl verwenden oder eine Zeichenfolge anderen Zeiten. Es kann auch so viele Stücke bearbeiten, wie Sie möchten, so dass Sie wie Schleifen arbeiten können;

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: Es bespannen Formatierung mehr ist, finden Sie in der python documentation für mehr.

+0

Vielen Dank für die korrekte Formatierung der Zeichenfolgenformatierung. – Chris