Heim >Backend-Entwicklung >Python-Tutorial >Arbeiten mit CSV -Dateien mit Python mit Beispielen
In diesem Artikel lernen wir, wie Sie Python verwenden, um Daten aus CSV -Dateien zu lesen und zu schreiben, und wie Sie CSV -Dateien in JSON -Format konvertieren und umgekehrt. Wir werden untersuchen
Eine CSV-Datei (Comma-getrennte Werte) ist ein Textdateiformat, mit dem Daten in einer tabellarischen Struktur gespeichert werden können. Dies ist ein beliebtes Format zum Exportieren und Importieren von Daten aus Datenbanken und Tabellenkalkulationen.Wie der Name schon sagt, wird jedes Datenstück in einer CSV -Datei durch ein Komma (,) getrennt. Manchmal kann der Begriff „CSV“ verwendet werden, um Formate mit anderen Arten von Separatoren wie Colons (:), Semikolons (;) und Tabs (T) zu beschreiben. Für die Zwecke dieses Artikels werden wir uns nur mit CSV -Dateien befassen, die Kommas als Grenzwerte verwenden (bekannt als RFC 4180).
Beim Öffnen sieht der Inhalt einer CSV -Datei so aus:
Employee Id,First Name,Gender,Start Date,Last Login Time,Salary,Bonus %,Senior Management,Team 1,Douglas,Male,8/6/1993,12:42 PM,,6.945,TRUE,Marketing 2,Thomas,Male,3/31/1996,6:53 AM,61933,4.17,, 3,Maria,Female,4/23/1993,11:17 AM,,11.858,FALSE,Finance 4,Jerry,Male,3/4/2005,1:00 PM,138705,9.34,,FinanceWie oben zu sehen, wird der Komma -Trennzeichen verwendet, um jedes spezifische Datenstück in der Datei zu trennen.
Die erste Datenzeile kann optional als Header dienen, wodurch jede Datenspalte darunter identifiziert wird. CSV -Dateien werden üblicherweise mit einer .csv -Dateierweiterung gespeichert.
Das CSV -Modul
python liefert das
csv -Modul zum Lesen, Schreiben und Ausführen anderer Formen der Dateibehandlung in CSV -Formaten. Die eingebaute Bibliothek bietet Funktionen und Klassen, die die Arbeit mit CSV-Dateien nahtlos machen.
Das Modul csv hat die Funktion csv.reader () zum Lesen von CSV -Dateien. Es wird zusammen mit Objekten (einschließlich Dateiobjekten) verwendet, z.
Bei Open () ein Dateiobjekt aus einem Aufruf an Open () gibt CSV.Reader () ein Leserobjekt zurück. Das Leserobjekt kann verwendet werden, um über jede Zeile von CSV -Daten zu iterieren, wobei Zeilen als Liste von Zeichenfolgen zurückgegeben werden.
Nehmen wir ein Beispiel:
Employee Id,First Name,Gender,Start Date,Last Login Time,Salary,Bonus %,Senior Management,Team 1,Douglas,Male,8/6/1993,12:42 PM,,6.945,TRUE,Marketing 2,Thomas,Male,3/31/1996,6:53 AM,61933,4.17,, 3,Maria,Female,4/23/1993,11:17 AM,,11.858,FALSE,Finance 4,Jerry,Male,3/4/2005,1:00 PM,138705,9.34,,Finance
Hier ist die Ausgabe des obigen Codes:
<span>import csv </span> <span>with open('employees.csv', newline='') as file_obj: </span> reader_obj <span>= csv.reader(file_obj) </span> <span>for row in reader_obj: </span> <span>print(row) </span>
Aus dem ersten Code -Snippet wird die Datei der Mitarbeiter.csv geöffnet, wonach die Funktion csv.reader () sie analysiert und ein Leserobjekt zurückgibt. Eine einfache Schleife wird verwendet, um das Leserobjekt zu iterieren, das eine Liste von Daten aus jeder Zeile aus der Datei der Mitarbeiter.CSV zurückgibt.
Neben dem Lesen von Daten aus CSV -Dateien können wir auch Daten in diese Dateien in Python schreiben. Mit der Funktion csv.writer () können wir Daten in das CSV -Format schreiben. Nach dem Öffnen der Datei im Schreibmodus gibt die Funktion csv.writer () ein Writer -Objekt zurück, das die gelieferten Daten in das angegebene Dateiobjekt in abgrenzende Zeichenfolgen umwandelt. Das Autor-Objekt verfügt über die Writherow () -Methode zum Schreiben einer Zeile-eine Iterable von Strings oder Anzahl von von Kommas getrennten Werten pro Zeit-, während die Writherow () -Methode für mehrere Zeilen gleichzeitig verwendet wird. Die Methoden writerow () und writherows () sind nur zwei Optionen zum Schreiben von Daten in eine CSV -Datei.
Alle im obigen Code -Snippet verwendeten Listenobjekte können in eine 2D -Liste eingeteilt und als Argument an die Writherows () -Methode des Schriftstellungsobjekts übergeben werden, um dasselbe Ergebnis zu erzielen.
Nach der Ausführung der With-Anweisung wird eine CSV-Datei (Products.CSV) im aktuellen Arbeitsverzeichnis erstellt, das diese von den Kommas getrennten Werten enthält.
Hier ist ein Beispiel:
<span>['Employee Id', 'First Name', 'Gender', 'Start Date', 'Last Login Time', 'Salary', 'Bonus %', 'Senior Management', 'Team'] </span><span>['1', 'Douglas', 'Male', '8/6/1993', '12:42 PM', '', '6.945', 'TRUE', 'Marketing'] </span><span>['2', 'Thomas', 'Male', '3/31/1996', '6:53 AM', '61933', '4.17', '', ''] </span><span>['3', 'Maria', 'Female', '4/23/1993', '11:17 AM', '', '11.858', 'FALSE', 'Finance'] </span><span>['4', 'Jerry', 'Male', '3/4/2005', '1:00 PM', '138705', '9.34', '', 'Finance'] </span><span>['5', 'Larry', 'Male', '1/24/1998', '4:47 PM', '101004', '1.389', 'TRUE', 'Client Services'] </span><span>... </span>
Hier ist die Ausgabe des obigen Codes:
<span>import csv </span> <span>with open('products.csv', 'w', newline='') as file_obj: </span> writer_obj <span>= csv.writer(file_obj) </span> writer_obj<span>.writerow(['Product Name', 'Price', 'Quantity', 'SKU Number' ]) </span> writer_obj<span>.writerow(['Rice', 80, 35, 'RI59023']) </span> writer_obj<span>.writerow(['Curry', 2, 200, 'CY13890']) </span> writer_obj<span>.writerow(['Milk', 9.5, 315, 'MK10204']) </span>
in JSON umwandelt Während der Ausführung von Datei -E/A -Vorgängen möchten wir möglicherweise eine CSV -Datei in das JSON -Format konvertieren - das für das Empfangen und Übertragen von Daten zwischen einem Client und einem Server beliebt ist. Das CSV
-Modul liefert die CSV.Dictreader -Klasse, damit wir dies erreichen können.Die Methoden csv.dictreader -Klassen helfen dabei, eine bestimmte CSV -Datei in ein Python -Wörterbuch umzuwandeln, bevor die JSON.Dump () -Funktion JSON
Modul angewendet wird, um das resultierende Python -Wörterbuch in eine JSON -Datei umzuwandeln. Die CSV.DICTREADER () -Klasse nimmt ein optionales Argument für Feldnamen an. Wenn die Feldnamen weggelassen werden, werden die Werte aus der ersten Zeile den restlichen Daten als Feldnamen zugeordnet.Schauen wir uns ein Beispiel an:
Product Name<span>,Price,Quantity,SKU Number </span>Rice<span>,80,35,RI59023 </span>Curry<span>,2,200,CY13890 </span>Milk<span>,9.5,315,MK10204 </span>
Hier ist die Ausgabe des obigen Codes:
<span>import csv </span><span>import json </span> my_dict <span>= {} </span> <span>with open('employees.csv', newline='') as file_obj: </span> reader_object <span>= csv.DictReader(file_obj) </span> <span>for row in reader_object: </span> key <span>= row['Employee Id'] </span> my_dict<span>[key] = row </span> <span>with open('employee.json', 'w', encoding='utf-8') as file_obj: </span> json<span>.dump(my_dict, file_obj, indent=4) </span>
Um eine CSV -Datei in ein JSON -Äquivalent umzuwandeln, haben wir die folgenden Schritte angewendet:
csv als auch die json Python-Module. Die Json.load () -Funktion JSON Modul hilft dabei Datei. Hier ist ein Beispiel:
Um eine JSON -Datei in ein CSV -Äquivalent umzuwandeln, haben wir die folgenden Schritte angewendet:
Employee Id,First Name,Gender,Start Date,Last Login Time,Salary,Bonus %,Senior Management,Team 1,Douglas,Male,8/6/1993,12:42 PM,,6.945,TRUE,Marketing 2,Thomas,Male,3/31/1996,6:53 AM,61933,4.17,, 3,Maria,Female,4/23/1993,11:17 AM,,11.858,FALSE,Finance 4,Jerry,Male,3/4/2005,1:00 PM,138705,9.34,,Finance
öffnete die Datei der Mitarbeiter.json im Lesemodus
CSV
-Modul ist sehr praktisch für die Arbeit mit CSV -Dateien, da es die erforderlichen Funktionen und Klassen für diese Art von Aufgaben liefert.Es ist auch wichtig zu beachten häufig gestellte Fragen (FAQs) zu Python CSV -Dateien
Wie kann ich große CSV -Dateien in Python bewältigen? Das integrierte CSV-Modul von Python bietet jedoch eine Möglichkeit, CSV-Dateien in kleineren Brocken zu lesen und zu schreiben, wodurch es möglich ist, mit großen Dateien zu arbeiten. Sie können das Leserobjekt in einer Schleife verwenden, um jeweils eine bestimmte Anzahl von Zeilen zu lesen. Auf diese Weise können Sie eine große Datei in kleineren, überschaubareren Stücken verarbeiten.
Wie kann ich CSV Kann sie verarbeiten, indem die Datei im Binärmodus geöffnet und das Unicodecsv-Modul anstelle des integrierten CSV-Moduls verwendet wird. Dieses Modul funktioniert genauso wie das CSV -Modul, unterstützt jedoch Unicode -Zeichen. Bibliothek in Python. Sie können die CSV -Datei in einen Datenrahmen lesen und dann mit der fillna -Methode fehlende Werte mit einem bestimmten Wert oder einem berechneten Wert füllen. 🎜>
Sie können Zeilen in einer CSV -Datei basierend auf einer Bedingung unter Verwendung der Pandas -Bibliothek in Python filtern. Nachdem Sie die CSV -Datei in einen Datenrahmen gelesen haben, können Sie die Boolesche Indexierung verwenden, um den Datenrahmen basierend auf einer Bedingung zu filtern.
Das obige ist der detaillierte Inhalt vonArbeiten mit CSV -Dateien mit Python mit Beispielen. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!