Ich habe dieses Problem viel zu lange bearbeitet, bitte erklären Sie mir, warum sich der Header in meiner Ausgabe-CSV immer wieder wiederholt.
Ich habe eine CSV-Eingabe mit diesen Daten:
Das Problem erfordert das Umkehren des Nach- und Vornamens, das Trennen des Namens in zwei Spalten und das Erstellen eines neuen Headers mit 3 Spalten für die CSV-Ausgabe. Hier ist, was ich habe:
while True:
try:
# open file
with open(sys.argv[1]) as file:
# make reader
reader = csv.reader(file)
# skip first line (header row)
next(reader)
# for each row
for row in reader:
# identify name
name = row[0]
# split at ,
name = name.split(", ")
# create var last and first, identify var house
last = name[0]
first = name[1]
house = row[1]
# writing the new csv
with open(sys.argv[2], "a") as after:
writer = csv.DictWriter(after, fieldnames=["first", "last", "house"])
# HEADER ONLY NEEDS TO OCCUR ONCE
writer.writeheader()
writer.writerow({"first": first, "last": last, "house": house})
sys.exit(0)
meine Ausgabe csv:
Ich habe versucht, die While-Schleife zu entfernen, Einzüge zu entfernen und einzurücken und manuell eine Zeile mit den Header-Namen zu schreiben (was zu Fehlern führte). Bitte helfen Sie. Vielen Dank!
Sie können eine Variable hinzufügen, die festlegt, ob eine Kopfzeile gedruckt wurde oder nicht, zwrite_header
while True:
try:
write_header = True
# open file
with open(sys.argv[1]) as file:
# make reader
reader = csv.reader(file)
# skip first line (header row)
next(reader)
# for each row
for row in reader:
# identify name
name = row[0]
# split at ,
name = name.split(", ")
# create var last and first, identify var house
last = name[0]
first = name[1]
house = row[1]
# writing the new csv
with open(sys.argv[2], "a") as after:
writer = csv.DictWriter(after, fieldnames=["first", "last", "house"])
# HEADER ONLY NEEDS TO OCCUR ONCE
if write_header:
writer.writeheader()
write_header = False
writer.writerow({"first": first, "last": last, "house": house})
sys.exit(0)
Sehen Sie, wie ich verwendet habewrite_header
Andererseits können Sie Ihren Code umgestalten, um den CSV-Writer vor der for
Schleife zu öffnen, Header dort zu schreiben und dann Werte wie jetzt zu schreiben, ohne die Datei jedes Mal neu öffnen zu müssen, wenn Sie eine Zeile schreiben möchten
Dieser Artikel stammt aus dem Internet. Bitte geben Sie beim Nachdruck die Quelle an.
Bei Verstößen wenden Sie sich bitte [email protected] Löschen.
Lass mich ein paar Worte sagen