Heim >Backend-Entwicklung >Python-Tutorial >Arbeiten mit CSV -Dateien mit Python mit Beispielen

Arbeiten mit CSV -Dateien mit Python mit Beispielen

Joseph Gordon-Levitt
Joseph Gordon-LevittOriginal
2025-02-15 08:52:11417Durchsuche

Arbeiten mit CSV -Dateien mit Python mit Beispielen

Key Takeaways

    Das integrierte CSV-Modul von
  • Python bietet Funktionen und Klassen zum Lesen, Schreiben und Handling von Daten in CSV-Formaten. Die Funktion csv.reader () kann zum Lesen von CSV -Dateien verwendet werden, während CSV.Writer () Daten in CSV -Dateien schreiben kann.
  • CSV -Dateien können mit der CSV.Dictreader -Klasse von Python in JSON -Format konvertiert werden, die eine CSV -Datei in ein Python -Wörterbuch umwandelt. Das Wörterbuch kann dann mit der Funktion json.dump () in eine JSON -Datei konvertiert werden.
  • JSON -Dateien können durch zunächst mit der Funktion json.load () in das CSV -Format konvertiert werden, um die JSON -Datei in ein Python -Wörterbuch umzuwandeln. Die Methoden der CSV.DictWriter -Klassen können dann verwendet werden, um das Wörterbuch in eine CSV -Datei umzuwandeln.
  • CSV -Dateien werden üblicherweise für den Datenimport und den Exportieren in Tabellenkalkulationen und Datenbanken verwendet. Das CSV -Modul von Python vereinfacht die Arbeit mit CSV -Dateien und konvertiert sie in andere Formate wie JSON.

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,,Finance
Wie 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

Da Tabellenkalkulationen und Datenbanken wie MS SQL als CSV -Dateien importiert und exportiert werden können, ist es wichtig zu wissen, wie Sie mit Daten umgehen, die im CSV -Format serviert werden. Die meisten Programmiersprachen wie Python unterstützen die Handhabung von Dateien in CSV und verwandeln sie auch in andere Formate wie JSON.

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.

So lesen Sie CSV -Dateien mit Python

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.

wie man mit Python

in CSV -Dateien schreibt

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>

wie man CSV mit Python

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:
  • öffnete die Datei der Mitarbeiter.csv im Lesemodus
  • Erstellt ein Python -Wörterbuch aus dem zurückgegebenen Dateiobjekt unter Verwendung der csv.dictreader -Klasse
  • öffnete eine JSON -Datei im Schreibmodus, wie z.
  • verwendete die Funktion von Dump () des
  • json Modul, um das Python -Wörterbuch (my_dict) in eine JSON -Datei umzuwandeln
Wie man JSON mit Python

in CSV umwandelt

In diesem Abschnitt werden wir uns untersuchen, wie Daten aus einer JSON -Datei in das CSV -Format konvertiert werden. Um dies zu erreichen, verwenden wir sowohl die integrierten

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

    Verwendete die Funktion json.load (), um ein Python -Wörterbuch py_dict
  • zu erstellen
  • öffnete im Schreibmodus eine CSV -Datei powers_records.csv (wenn keine solche Datei vorhanden wäre, wäre man erstellt worden)
  • Erstellt ein Schriftstellerobjekt mit der CSV.DictWriter -Klasse mit den notwendigen Argumenten
  • verwendete die Autoren von Autor -Objekten, um Wörterbücher in die entsprechende Anzahl von Zeilen zuzubereiten.
  • Schlussfolgerung
CSV -Dateien sind sehr beliebt und werden häufig zum Exportieren und Importieren von Tabellenkalkulationen und Datenbanken verwendet. Dieses Dateiformat wird sehr oft von denjenigen verwendet, die mit Daten arbeiten. Während das Programmieren mit Python muss möglicherweise CSV -Dateien schnell verwendet werden. Daher ist es wichtig zu erfahren, wie Sie mit CSV Datei -E/A -Operationen ausführen.

Pythons

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 in eine CSV -Datei in Python schreiben? CSV -Modul. Sie können das Autor -Objekt und seine Autorow -Methode verwenden, um eine einzelne Zeile zu schreiben, oder die Writherows -Methode, um mehrere Zeilen gleichzeitig zu schreiben. Denken Sie daran, die Datei im Schreibmodus („W“) zu öffnen, bevor Sie darauf schreiben.

Wie kann ich CSV -Dateien mit unterschiedlichen Abgrenzern in Python bewältigen? Die Leser- und Schriftstellungsobjekte nehmen einen Trennzeichenparameter auf, den Sie auf ein beliebiges Zeichen setzen können, das Ihre CSV -Datei als Trennzeichen verwendet. Ihre CSV -Datei enthält eine Header -Zeile. Sie können das Dictreader -Objekt im CSV -Modul verwenden, um die Datei zu lesen. Dieses Objekt behandelt jede Zeile als Wörterbuch, wobei die Schlüssel die Spaltennamen aus der Header -Zeile sind und die Werte die Daten in jeder Zeile sind. 🎜>

Das CSV -Modul in Python enthält die Konstanten von QUOTE_MINIMAL, QUOTE_ALT, QUOTE_Nonnumeric und QUOTE_NONE, um angegebene Felder in CSV -Dateien zu verarbeiten. Sie können diese Konstanten beim Erstellen eines Leser- oder Schriftstellungsobjekts als Zitatparameter angeben.

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. 🎜>

Python bietet mehrere Bibliotheken, um CSV -Dateien in verschiedene Formate umzuwandeln. Beispielsweise können Sie mit der Pandas -Bibliothek eine CSV -Datei in eine Excel -Datei, eine SQL -Datenbank oder eine JSON -Datei konvertieren. >

Sie können eine CSV -Datei mit der Pandas -Bibliothek in Python nach einer bestimmten Spalte sortieren. Nachdem Sie die CSV -Datei in einen Datenrahmen gelesen haben, können Sie die Methode Sort_values ​​verwenden, um den Datenfreame nach einer oder mehreren Spalten zu sortieren.

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!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn