Ich versuche, eine Funktion zu erstellen, die dynamisch löscht und Aufträge Zeilen basierend auf den Spaltennummern in geben Bisher habe ich definiert die folgenden:.Dynamische Argumente in Python schreiben
import csv
def delete(rows_to_keep):
with open('file.csv','r') as source:
rdr= csv.reader(source)
with open('reordered.csv','w') as result:
wtr= csv.writer(result, delimiter=',', lineterminator='\n')
for r in rdr:
wtr.writerow(...)
rows_to_keep = [1, 3, 5, 6]
delete(rows_to_keep)
jedoch in der oben, möchte ich die ... in der writerow (...) durch Argumente ersetzt werden, wie folgt:
... = r[1], r[3], r[5], r[6]
dh
wtr.writerow(r[1], r[3], r[5], r[6])
Und haben die Anzahl der Argumente und Reihenfolge je nachdem, was übergeben wird.
Ich bin nicht ganz sicher, wie ich das tun könnte, wenn plötzlich das Array 10 Werte hat. Irgendwelche Ideen??
Funktioniert perfekt danke! – NickP
Ich würde immer ein Listenverständnis verwenden: dafür sind sie da. Im ersten Beispiel würde "list()" üblicherweise einfach als "[]" geschrieben. – EOL
Die Verständlichkeit ist großartig, aber für neue Programmierer sind sie schwer zu verstehen. Da es nicht die Frage ist, über die ich mich ausspreche, entschied ich mich dafür, es einfach und explizit zu halten. YMMV. – alexis