Dies ist eine Ergänzung zu dem zuvor erwähnten Python-CSV-Modul.
Ehrlich gesagt können Sie es durch Dokument oder Google verstehen, Bewahren Sie es als Memorandum auf
Wenn Sie eine CSV-Datei öffnen und in eine andere Datei schreiben möchten Verwenden Sie die Reader-Methode, um im Listenformat zu übergeben
Zu diesem Zeitpunkt liegt der Rückgabewert der Reader-Methode natürlich im Listenformat vor.
import csv
data=[]
#Lesen Sie CSV im Listenformat
with open('data.csv' , 'r', newline='' , encoding='utf-8') as f:
r = csv.reader(f)
data = [ i for i in r ]
#Schreiben Sie CSV im Listenformat
with open('data.csv' , 'w', newline='' , encoding='utf-8') as f:
w = csv.writer(f)
w.writerows(data)
Zu diesem Zeitpunkt handelt es sich bei den Daten um eine Mehrfachliste, wie unten gezeigt.
[['python', '1'], ['php', '1']]
Beim Schreiben mit writerow wird eine Liste als Argument übergeben. Beachten Sie, dass Sie bei mehreren Listen wie den oben genannten Zeilen schreiben müssen
Wenn Sie versuchen, eine Zeile zu schreiben, lautet der Rückgabewert wie folgt (als einzeilige Liste zurückgegeben).
"['python', '1']","['php', '1']"
Wenn Sie Zeilen schreiben, lautet der Rückgabewert wie folgt.
python,2
php,2
Verwenden Sie die DictReader-Methode, um das Wörterbuchformat zu übergeben
Zu diesem Zeitpunkt liegt der Rückgabewert der DictReader-Methode natürlich im Wörterbuchformat vor.
from collections import defaultdict
import csv
data = defaultdict(int)
with open('data.csv' , 'r', newline='' , encoding='utf-8') as f:
r = csv.DictReader(f)
data = [ i for i in r ] #Wörterbuch in Liste speichern
with open('data.csv' , 'w', newline='' , encoding='utf-8') as f:
fieldnames =['Name', 'Count']
w = csv.DictWriter(f, fieldnames= fieldnames)
w.writerows(data)
Wenn Sie wie im Fall der Liste in die Variablen schauen, sind die Datenvariablen wie folgt
[{'Name': 'python', 'Count': '1'}, {'Name': 'php', 'Count': '1'}]
Diesmal werden die Schlüssel und Werte als Wörterbuch eingegeben
Beim Schreiben wird die Liste als Argument an die Writerow-Methode übergeben Tatsächlich wird es zu einem Bild der Übergabe des Inhalts des Wörterbuchs in einer Liste
Wenn Sie versuchen, mit writerow wie im Fall von list zu schreiben, tritt der Attributfehler wie folgt auf Ich ärgere mich, dass das Listenobjekt kein Attribut namens key hat
AttributeError: 'list' object has no attribute 'keys'
Wenn Sie Writerows verwenden, können Sie wie im Fall der Liste wie folgt schreiben
python,1
php,1
Ich habe verstanden, dass die Writerows-Methode verwendet wird, wenn sowohl die Basisliste als auch das Wörterbuch mehrmals übergeben werden.
Recommended Posts