eine einfache CSV-Datei wie folgt gegeben:Python und CSV; Wie schneidet man alle Werte in einer Spalte ab?
Django,Gunslinger,101-707
KingSchultz,Dentist,205-707
Tatum,Marshall,615-707
Broomhilda,Wife,910-707
...,...,...
Wie Sie alle Werte in der letzten Spalte gestutzt, so dass nur die ersten drei Ziffern bleiben? (Nicht verwandt: so können sie in mathematischen Operationen verwendet werden)
Wunsch CSV:
Django,Gunslinger,101
KingSchultz,Dentist,205
Tatum,Marshall,615
Broomhilda,Wife,910
...,...,...
Hier ist, was ich bisher versucht:
import csv
import re
r = csv.reader(open(input.csv))
for row in r:
re.sub('\-.*', '', row[3])
writer = csv.writer(open('output.csv', 'w'))
writer.writerow(row)
ich die regex
in re.sub
prüft haben funktioniert richtig. Habe Dutzende von Varianten probiert, viele Stunden lang gesucht, aber nicht die gewünschte Ausgabe bekommen.
Getestet Arbeiten an Python 2.7.6 und 3.4.3. Danke @ praba230890. Ich habe die Antwort so bearbeitet, dass sie einen einfachen Fehler enthält, der eine andere Person in Python 3.4.3 verwirren könnte. – TigerRedMike
Können Sie die Syntax von '[: 3]' erklären? – TigerRedMike
Es ist das Schneiden von Schnitten, [: 3] schneidet die ersten 3 Zeichen einer Zeichenkette und gibt sie zurück. Überprüfen Sie dies https://docs.python.org/3/tutorial/introduction.html#strings – praba230890