So lesen Sie eine CSV-Datei in Python | Lesen und Schreiben von CSV-Dateien
Was ist eine CSV-Datei?
Eine CSV-Datei ist eine einfache Art von Klartextdatei, die eine bestimmte Struktur verwendet, um tabellarische Daten anzuordnen. Das Standardformat einer CSV-Datei wird durch Zeilen- und Spaltendaten definiert, wobei eine neue Zeile jede Zeile beendet, um die nächste Zeile zu beginnen, und jede Spalte durch ein Komma innerhalb der Zeile getrennt ist.
CSV ist ein gängiges Format für den Datenaustausch, da es kompakt, einfach und allgemein ist. Viele Online-Dienste ermöglichen ihren Benutzern, tabellarische Daten von der Website in eine CSV-Datei zu exportieren. CSV-Dateien werden in Excel geöffnet, und fast alle Datenbanken verfügen über ein Tool zum Importieren von CSV-Dateien.
In diesem Tutorial lernen Sie:
- Was ist eine CSV-Datei?
- CSV-Beispieldatei
- Python CSV-Modul
- CSV-Modulfunktionen
- So lesen Sie eine CSV-Datei in Python
- Einlesen einer CSV-Datei in ein Wörterbuch in Python
- Wie man eine CSV-Datei in Python schreibt
- CSV-Datei mit Pandas lesen
- CSV-Datei mit Pandas schreiben
CSV-Beispieldatei
Daten in Form von Tabellen werden auch als CSV (Comma Separated Values) bezeichnet – wörtlich „kommagetrennte Werte“. Dies ist ein Textformat, das für die Darstellung tabellarischer Daten vorgesehen ist. Jede Zeile der Datei ist eine Zeile der Tabelle. Die Werte der einzelnen Spalten werden durch ein Trennzeichen getrennt – ein Komma (,), ein Semikolon (;) oder ein anderes Symbol. CSV kann leicht von Python gelesen und verarbeitet werden.
Betrachten Sie die folgende Tabelle
Tabellendaten
Programmiersprache | Entworfen von | Erschienen | Erweiterung |
---|---|---|---|
Python | Guido van Rossum | 1991 | .py |
Java | James Gosling | 1995 | .java |
C++ | Bjarne Stroustrup | 1983 | .cpp |
Sie können diese Tabelle wie folgt in CSV darstellen.
CSV-Daten
Programmiersprache, Entworfen von, Erschienen, Erweiterung
Python, Guido van Rossum, 1991, .py
Java, James Gosling, 1995, .java
C++, Bjarne Stroustrup, 1983,.cpp
Wie Sie sehen können, ist jede Zeile eine neue Zeile, und jede Spalte wird durch ein Komma getrennt. Dies ist ein Beispiel dafür, wie eine CSV-Datei aussieht.
CSV-Daten herunterladen
Python CSV-Modul
Python bietet ein CSV-Modul zur Verarbeitung von CSV-Dateien. Um Daten zu lesen/schreiben, müssen Sie die Zeilen der CSV durchlaufen. Sie müssen die Split-Methode verwenden, um Daten aus bestimmten Spalten zu erhalten.
CSV-Modulfunktionen
In der Dokumentation zum CSV-Modul finden Sie folgende Funktionen:
- csv.field_size_limit – gibt die maximale Feldgröße zurück
- csv.get_dialect – erhält den Dialekt, der mit dem Namen verknüpft ist
- csv.list_dialects – zeigt alle registrierten Dialekte
- csv.reader – liest Daten aus einer csv-Datei
- csv.register_dialect – Dialekt mit Namen verknüpfen
- csv.writer – Daten in eine CSV-Datei schreiben
- csv.unregister_dialect – löscht den Dialekt, der dem Namen der Dialektregistrierung zugeordnet ist
- csv.QUOTE_ALL – Alles zitieren, unabhängig vom Typ.
- csv.QUOTE_MINIMAL – Felder mit Sonderzeichen zitieren
- csv.QUOTE_NONNUMERIC – Alle Felder in Anführungszeichen setzen, die keine Zahlenwerte sind
- csv.QUOTE_NONE – In der Ausgabe nichts zitieren
In diesem Tutorial konzentrieren wir uns nur auf die Lese- und Schreibfunktionen, mit denen Sie die Daten in einer CSV-Datei bearbeiten, ändern und manipulieren können.
So lesen Sie eine CSV-Datei in Python
Nachfolgend finden Sie Schritte zum Lesen der CSV-Datei in Python.
Schritt 1) Um Daten aus CSV-Dateien zu lesen, müssen Sie die Reader-Funktion verwenden, um ein Reader-Objekt zu generieren.
Die Reader-Funktion wurde entwickelt, um jede Zeile der Datei zu nehmen und eine Liste aller Spalten zu erstellen. Dann müssen Sie die Spalte auswählen, für die Sie die variablen Daten haben möchten.
Klingt viel komplizierter als es ist. Werfen wir einen Blick auf diesen Python-Code zum Lesen der CSV-Datei, und wir werden feststellen, dass das Arbeiten mit der CSV-Datei nicht so schwierig ist.
#import necessary modules import csv with open('X:\data.csv','rt')as f: data = csv.reader(f) for row in data: print(row)
Schritt 2) Wenn Sie das obige Programm ausführen, lautet die Ausgabe:
['Programming language; Designed by; Appeared; Extension'] ['Python; Guido van Rossum; 1991; .py'] ['Java; James Gosling; 1995; .java'] ['C++; Bjarne Stroustrup;1983;.cpp']
Einlesen einer CSV-Datei in ein Wörterbuch in Python
Sie können auch DictReader verwenden, um CSV-Dateien zu lesen. Die Ergebnisse werden als Wörterbuch interpretiert, wobei die Kopfzeile der Schlüssel und die anderen Zeilen Werte sind.
Betrachten Sie den folgenden Code
#import necessary modules import csv reader = csv.DictReader(open("file2.csv")) for raw in reader: print(raw)
Das Ergebnis dieses Codes ist:
OrderedDict([('Programming language', 'Python'), ('Designed by', 'Guido van Rossum'), (' Appeared', ' 1991'), (' Extension', ' .py')]) OrderedDict([('Programming language', 'Java'), ('Designed by', 'James Gosling'), (' Appeared', ' 1995'), (' Extension', ' .java')]) OrderedDict([('Programming language', 'C++'), ('Designed by', ' Bjarne Stroustrup'), (' Appeared', ' 1985'), (' Extension', ' .cpp')])
Und diese Methode zum Lesen von Daten aus einer CSV-Datei ist viel einfacher als die frühere Methode. Dies ist jedoch nicht die beste Art, Daten zu lesen.
Wie man eine CSV-Datei in Python schreibt
So schreiben Sie eine CSV-Datei in Python:
Wenn Sie einen Datensatz haben, den Sie in einer CSV-Datei speichern möchten, müssen Sie die Funktion write() verwenden. Um die Daten über die Zeilen (Zeilen) zu iterieren, müssen Sie die Funktion writerow() verwenden.
Betrachten Sie das folgende Beispiel. Wir schreiben Daten in eine Datei „writeData.csv“, wobei das Trennzeichen ein Apostroph ist.
#import necessary modules import csv with open('X:\writeData.csv', mode='w') as file: writer = csv.writer(file, delimiter=',', quotechar='"', quoting=csv.QUOTE_MINIMAL) #way to write to csv file writer.writerow(['Programming language', 'Designed by', 'Appeared', 'Extension']) writer.writerow(['Python', 'Guido van Rossum', '1991', '.py']) writer.writerow(['Java', 'James Gosling', '1995', '.java']) writer.writerow(['C++', 'Bjarne Stroustrup', '1985', '.cpp'])
Ergebnis in der CSV-Datei ist:
Programming language, Designed by, Appeared, Extension Python, Guido van Rossum, 1991, .py Java, James Gosling, 1995, .java C++, Bjarne Stroustrup,1983,.cpp
CSV-Datei mit Pandas lesen
Pandas ist eine Open-Source-Bibliothek, mit der Sie CSV in Python importieren und Daten manipulieren können. Pandas bieten eine einfache Möglichkeit, die Daten zu erstellen, zu manipulieren und zu löschen.
Sie müssen die Pandas-Bibliothek mit dem Befehl pip install pandas
installieren. Unter Windows führen Sie diesen Befehl in der Eingabeaufforderung und unter Linux im Terminal aus.
Das Einlesen der CSV in einen Pandas DataFrame ist sehr schnell und einfach:
#import necessary modules import pandas result = pandas.read_csv('X:\data.csv') print(result)
Ergebnis des gelesenen CSV-Pandas-Beispiels:
Programming language, Designed by, Appeared, Extension 0 Python, Guido van Rossum, 1991, .py 1 Java, James Gosling, 1995, .java 2 C++, Bjarne Stroustrup,1983,.cpp
Sehr nützliche Bibliothek. In nur drei Codezeilen erhalten Sie das gleiche Ergebnis wie zuvor. Pandas wissen, dass die erste Zeile der CSV-Datei Spaltennamen enthält, und werden diese automatisch verwenden.
CSV-Datei mit Pandas schreiben
Das Schreiben in eine CSV-Datei mit Pandas ist so einfach wie das Lesen. Hier können Sie davon überzeugen. Zuerst müssen Sie DataFrame basierend auf dem folgenden Python-Code zum Schreiben in CSV erstellen.
from pandas import DataFrame C = {'Programming language': ['Python','Java', 'C++'], 'Designed by': ['Guido van Rossum', 'James Gosling', 'Bjarne Stroustrup'], 'Appeared': ['1991', '1995', '1985'], 'Extension': ['.py', '.java', '.cpp'], } df = DataFrame(C, columns= ['Programming language', 'Designed by', 'Appeared', 'Extension']) export_csv = df.to_csv (r'X:\pandaresult.csv', index = None, header=True) # here you have to write path, where result file will be stored print (df)
Hier ist die Ausgabe
Programming language, Designed by, Appeared, Extension 0 Python, Guido van Rossum, 1991, .py 1 Java, James Gosling, 1995, .java 2 C++, Bjarne Stroustrup,1983,.cpp
Und die CSV-Datei wird am angegebenen Speicherort erstellt.
Schlussfolgerung
Jetzt wissen Sie also, wie Sie die Methode „csv“ verwenden und auch Daten im CSV-Format lesen und schreiben. CSV-Dateien werden häufig in Softwareanwendungen verwendet, da sie einfach zu lesen und zu verwalten sind und aufgrund ihrer geringen Größe relativ schnell verarbeitet und übertragen werden können.
Das csv-Modul stellt verschiedene Funktionen und Klassen bereit, die Ihnen ein einfaches Lesen und Schreiben ermöglichen. Sie können sich die offizielle Python-Dokumentation ansehen und weitere interessante Tipps und Module finden. CSV ist die beste Methode zum Speichern, Anzeigen und Senden von Daten. Eigentlich ist es nicht so schwer zu lernen, wie es am Anfang scheint. Aber mit etwas Übung wirst du es meistern.
Pandas ist eine großartige Alternative zum Lesen von CSV-Dateien.
Außerdem gibt es andere Möglichkeiten, Textdateien mit Bibliotheken wie ANTLR, PLY und PlyPlus zu analysieren. Sie können alle mit schwerem Parsing umgehen, und wenn die einfache String-Manipulation nicht funktioniert, gibt es reguläre Ausdrücke, die Sie verwenden können.
Python
- Python-Schlüsselwörter und -Identifikatoren
- Python-Anweisung, Einrückung und Kommentare
- Python-Variablen, -Konstanten und -Literale
- Python-Typkonvertierung und Typumwandlung
- Python-Eingabe, -Ausgabe und -Import
- Python Globale, lokale und nicht lokale Variablen
- Python-Datei-I/O
- Python-Verzeichnis- und Dateiverwaltung
- Python-Fehler und eingebaute Ausnahmen
- Wie bekomme ich das aktuelle Datum und die Uhrzeit in Python?