Ich versuche, eine CSV-Datei zu sortieren, die wie folgt aussieht:Wie sortiere ich diese CSV-Datei?
filename,field1,field2
10_somefile,0,0
1_somefile,0,0
2_somefile,0,0
3_somefile,0,0
4_somefile,0,0
5_somefile,0,0
6_somefile,0,0
7_somefile,0,0
8_somefile,0,0
9_somefile,0,0
I-Code von einem anderen Thread verwiesen habe:
with open(outfname, "rb") as unsorted_file:
csv_f = csv.reader(unsorted_file)
header = next(csv_f, None)
sorted_data = sorted(csv_f, key=operator.itemgetter(0))
with open(outfname, 'wb') as sorted_file:
csv_f = csv.writer(sorted_file, quoting=csv.QUOTE_ALL)
if header:
csv_f.writerow(header)
csv_f.writerows(sorted_data)
Dies wird jedoch die '10_somefile' nicht bewegen bis zum Ende. Wie kann ich das so sortieren, dass es die Nummer vor dem Unterstrich als Sortierfeld verwendet?
Ist das Format immer „X_somefile ....“ oder der „somefile“ Teil der Daten kann auch in der gleichen Reihenfolge ändern ? Wie "1_filea ...", "1_fileb ..". Wenn Letzteres, sollte die korrekte Ausgabe "1_filea, 2_filea, 1_fileb, ...." oder "1_filea, 1_fileb, 2_filea, ..." sein. Dies zeigt an, ob Sie nur nach den Ganzzahlen oder den restlichen Teilen der Zeichenfolge sortieren müssen. –