zu wählen Ich bin derzeit ein Anfänger in der Programmierung und sehr neu in Python-Codierung.Benutzereingaben von arcGis verwenden, um bestimmte csv Spalte
Ich wollte eigentlich CSV-Datei neu zu schreiben (Lese csv und es an einem anderen csv speichern)
Was ich werde fragen Sie ist wie eine bestimmte CSV-Spalte von arcgis Benutzereingabe zu lesen.
Ich verwende "field" Datentypen und "multivalues" für die Eingabe, so dass ich wählen kann, welche Spalte ich anzeigen möchte.
Zum Beispiel, ich habe diese csv:
key, province, population, area
A1, provA, 100, 20
B1, provB, 200, 10
C1, provC, 50, 30
nun vom Eingang wählen i nur Schlüssel und Bereich für die Spalte, die ich benutze:
GetParameterAsText(0)
dann verwende ich diesen Code:
headers = arcpy.GetParameterAsText(0)
newhead = headers.replace("'", "")
headersList = newhead.split(";")
arcpy.AddMessage(headersList)
Ich habe dieses Ergebnis (headersList):
[u'key', u'area']
The Problem beginnt, wenn ich, dass bestimmte Spalte aus dem obigen Ergebnis lesen möchten:
data = []
with csvdata as csvfile:
reader = csv.DictReader(csvfile, delimiter=",")
for row in reader:
try:
new_row = [headersList] <--------------- This One
data.append(new_row)
except IndexError as e:
print e
pass
with open(csvout, "w+") as to_file:
writer = csv.writer(to_file, delimiter=",")
for new_row in data:
writer.writerow(new_row)
ich new_row machen möchte dies gerne (erhalten sie von headersList):
new_row = [row['key'], row['area']]
Aber ich weiß nur nicht, wie, kann jemand helfen?
Angenommen, 'headersList' ist' [u'key ', u'area'] ', was ist mit' new_row = [row [k] für k in headersList] '(Dies wird Listenverstehen genannt) – jedwards
wow, I kann das tun? lass mich es versuchen –
Das funktioniert super !, Ich habe ein paar Codes geändert, um mein Ergebnis zu bekommen, danke Sir ... Jetzt weiß ich, dass es etwas namens Listen Verständnis –