So lesen und erstellen Sie CSV -Dateien mit Python

So lesen und erstellen Sie CSV -Dateien mit Python

CSV ist das Akronym für „Comma -getrennte Werte“. Eine CSV -Datei ist ein einfaches Textdokument, das zur Darstellung und des Austauschs von tabellarischen Daten verwendet wird. Jede Zeile in einer CSV -Datei repräsentiert eine „Entität“, und jede Spalte repräsentiert ein Attribut davon. Spalten werden normalerweise durch ein Komma getrennt, aber andere Zeichen können als Feldabscheider verwendet werden. In diesem Tutorial sehen wir, wie Sie CSV -Dateien mit Python lesen und erstellen, und speziell die CSV Modul, das Teil der ist
Sprachstandardbibliothek.

In diesem Tutorial lernen Sie:

  • So lesen Sie CSV -Zeilen als eine Liste von Zeichenfolgen
  • So lesen Sie einen CSV als eine Liste von Wörterbüchern
  • So erstellen Sie ein CSV mit Python
  • So erstellen Sie ein CSV aus einer Liste von Wörterbüchern
So lesen und erstellen Sie CSV -Dateien mit Python

Softwareanforderungen und Konventionen verwendet

Softwareanforderungen und Linux -Befehlszeilenkonventionen
Kategorie Anforderungen, Konventionen oder Softwareversion verwendet
System Verteilung unabhängig
Software Python3
Andere Grundkenntnisse über Python und objektorientierte Programmierung
Konventionen # - Erfordert, dass gegebene Linux -Commands mit Root -Berechtigungen entweder direkt als Stammbenutzer oder mithilfe von verwendet werden können sudo Befehl
US

CSV - Kommas getrennter Wert

Wie wir bereits in der Einführung dieses Tutorials erwähnt haben, a CSV ist nur eine einfache einfache Textdatei, die so formatiert ist, dass wir tabellarische Daten darstellen und austauschen können. Jede Zeile in einer CSV -Datei repräsentiert eine Art Entität außer der
Erste Zeile, die normalerweise die Feldtitel enthält. Lassen Sie uns ein Beispiel sehen. Angenommen, wir wollen Charaktere aus dem Buch des Herrn der Ringe im CSV -Format darstellen:

Name, Race Frodo, Hobbit Aragorn, Mann Legolas, Elf Gimli, Zwerg 

Das oben oben ist ein triviales Beispiel für den Inhalt einer CSV -Datei. Wie Sie sehen können, haben wir das benutzt , (Komma) als Feldabscheider. Wir speichern diese Daten in einer Datei mit dem Namen lotr.CSV. Mal sehen, wie wir es mit der Python -Programmierung lesen können
Sprache und die CSV Modul.

Lesen einer CSV -Datei

Um mit einer CSV -Datei mit Python zu interagieren, müssen wir das erste tun, um die zu importieren CSV Modul. Schreiben wir ein einfaches Skript, nur wenige Codezeilen:

#!/usr/bin/env python3 import csv wenn __name__ == '__main__': mit offen ('lotr.CSV ', Newline = ") als CSVFile: Reader = CSV.Leser (CSVFile) für Zeile in Reader: Print (Zeile) 


In diesem Beispiel nehmen wir an, dass das von uns oben erstellte Skript (nennen wir es nennen wir es Skript.py) befindet sich im selben Verzeichnis der CSV.

Das erste, was wir taten, war, die zu importieren CSV Modul; Dann haben wir die Datei im Lesemodus (der Standard) mit einem Kontextmanager geöffnet, damit wir sicher sind, dass das Dateiobjekt immer geschlossen ist, wenn die Dolmetscher existieren mit Block, auch wenn eine Art Fehler auftritt. Sie können auch feststellen, dass wir die benutzt haben Neue Zeile Argument der offen Funktion zum Angeben einer leeren Zeichenfolge als Newline -Zeichen. Dies ist eine Sicherheitsmaßnahme, da, wie in der angegeben CSV Modul
Dokumentation:

Wenn Newline = "nicht angegeben ist, werden Newlines, die in angegebene Felder eingebettet sind. Es sollte immer sicher sein, Newline = "anzugeben, da das CSV.

Der CSVFILE Objekt repräsentiert unsere geöffnete Datei: Wir geben sie als Argument an die über CSV.Leser Funktion, die ein Leserobjekt zurückgibt, auf das wir über die verweisen csv_reader Variable. Wir verwenden dieses Objekt, um durch jede Zeile der Datei zu iterieren, die als Liste von Zeichenfolgen zurückgegeben wird. In diesem Fall drucken wir sie einfach. Wenn wir das Skript ausführen, erhalten wir das folgende Ergebnis:

$ ./Skript.Py ['Name', 'Rasse'] ['Frodo', 'Hobbit'] ['Aragorn', 'Mann'] ['Legolas', 'Elf'] ['Gimli', 'Zwerg'] 

Das war ziemlich einfach, nicht wahr?? Was ist, wenn ein anderes Zeichen als das Komma als Feldabscheider verwendet wird? In diesem Fall konnten wir verwenden Abgrenzer Parameter der Funktion und das verwendet werden, das verwendet werden sollte. Sagen wir, der Charakter ist |. Wir würden schreiben:

csv_reader = csv.Leser (CSVFILE, Delimiter = "|") 
Kopieren

Lesen Sie die CSV -Felder in einem Wörterbuch

Der oben verwendete, ist wahrscheinlich der einfachste Weg, mit dem wir eine CSV -Datei mit Python lesen können. Der CSV Module definieren auch die Dictreader Klasse, die uns jede Zeile in einer CSV -Datei auf ein Wörterbuch zuordnen lassen, wobei die Schlüssel die Feldnamen und die Werte der tatsächliche Inhalt in einer Zeile sind. Lassen Sie uns ein Beispiel sehen. So ändern wir unser Skript:

#!/usr/bin/env python3 import csv wenn __name__ == '__main__': mit offen ('lotr.CSV ', Newline = ") als CSVFile: Reader = CSV.Dictreader (CSVFile) für Zeile in Reader: Print (Zeile) 
Kopieren

Der Dictreader Das obligatorische erste Argument des Klassenkonstruktors ist das Dateiobjekt, das beim Öffnen der Datei erstellt wurde. Wenn wir das Skript starten, erhalten wir diesmal das folgende Ergebnis:

'Name': 'frodo', 'race': 'hobbit' 'name': 'aragorn', 'race': 'man' 'name': 'legolas', 'race': 'elf'  'Name': 'gimli', 'race': 'zwarf' 

Wie bereits erwähnt, werden die in der ersten Reihe enthaltenen Felder als Wörterbuchschlüssel verwendet. Aber was ist, wenn die erste Zeile der Datei die Feldnamen nicht enthält? In diesem Fall können wir sie mit dem angeben Feldnamen Parameter der Dictreader Klassenkonstruktor:

Reader = CSV.Dictreader (CSVFile, Fieldnames = ['Name', 'Rasse]) 
Kopieren

Erstellen Sie eine CSV -Datei

Bisher haben wir gerade gesehen, wie man Daten aus einer CSV. Lassen Sie uns nun sehen, wie Sie eine CSV -Datei erstellen. Wie immer beginnen wir einfach mit einem Beispiel und erklären es, anstatt es zu erklären. Stellen Sie sich vor, wir möchten die CSV -Datei, die wir zuvor manuell erstellt haben. Hier ist der Code, den wir schreiben würden:

#!/usr/bin/env python3 import csv wenn __name__ == '__main__': mit offen ('lotr.CSV ',' W ', newline = ") als CSVFile: writer = csv.Schriftsteller (CSVFILE) für Row in ('Name', 'Race'), ('Frodo', 'Hobbit'), ('Aragorn', 'Man'), ('Legoals', 'Elf'), (' Gimli ',' Zwerg ')): Schriftsteller.writerow (Reihe) 


Das erste, was Sie bemerken sollten, ist, dass wir diesmal das geöffnet haben lotr.CSV Datei im Schreibmodus (w). In diesem Modus wird eine Datei erstellt, wenn sie nicht existiert und ist gekürzt Andernfalls (überprüfen Sie unseren Artikel über die Durchführung von Eingangs-/Ausgabematerial in Dateien mit Python, wenn Sie mehr über dieses Thema erfahren möchten).

Anstelle einer Leser Objekt, diesmal haben wir a erstellt Schriftsteller eins mit dem Schriftsteller Funktion in der CSV Modul. Die Parameter, die diese Funktion akzeptiert Leser eins. Wir könnten beispielsweise einen alternativen Trennzeichen angeben, der den Parameter mit demselben Namen verwendet.

Da wir in diesem Fall bereits alle CSV -Zeilen im Voraus kennen, können wir es vermeiden, eine Schleife zu verwenden, und alle gleichzeitig die Verwendung des Schriftsteller Methode des Schriftstellungsobjekts:

#!/usr/bin/env python3 import csv wenn __name__ == '__main__': mit offen ('lotr.CSV ',' W ', newline = ") als CSVFile: writer = csv.Schriftsteller (CSVFile) Schriftsteller.Schriftsteller (('Name', 'Rasse'), ('Frodo', 'Hobbit'), ('Aragorn', 'Man'), ('Legolas', 'Elf'), ('Gimli', 'Zwerg '))) 

Erstellen Sie eine CSV -Datei mit dem DictWriter -Objekt

Der CSV Modul liefert a Diktriter Klasse, die uns ein Wörterbuch einer CSV -Zeile zuordnen lassen. Dies kann sehr nützlich sein, wenn die Daten, an denen wir arbeiten, auf diese Weise kommen und sie in tabellarischer Form darstellen möchten. Lassen Sie uns ein Beispiel sehen.
Angenommen, unsere LOTR -Zeichendaten werden als eine Liste von Wörterbüchern dargestellt (vielleicht, wie sie von einem API -Anruf mit dem zurückgegeben werden würden Anfragen Modul). Hier ist, was wir schreiben könnten, um ein CSV basierend darauf zu erstellen:

#!/usr/bin/env python3 import csv charnes_data = ['name': 'frodo', 'race': 'hobbit', 'name': 'aragorn', 'race': 'man', '' Name ':' Legolas ',' Race ':' Elf ', ' Name ':' gimli ',' race ':' zwer.csv ',' w ') als csvFile: writer = csv.Dictwriter (CSVFile, Fieldnames = ('Name', 'Race')) Schriftsteller.WritHeHeader () Schriftsteller.writherows (charakters_data) 
Kopieren

Mal sehen, was wir getan haben. Zuerst haben wir eine Instanz der erstellt Diktriter Klasse, als Argumente das Dateiobjekt (Argumente) (CSVFILE) und dann Feldnamen, Dies muss eine Abfolge von Werten sein, die als CSV -Feldnamen verwendet werden müssen, und bestimmt in welcher Reihenfolge die in jedem Wörterbuch enthaltenen Werte in die Datei geschrieben werden sollen. Während im Fall der Dictreader Klassenkonstruktor Dieser Parameter ist optional, hier ist er obligatorisch und es ist leicht zu verstehen, warum.

Nach dem Erstellen der Schriftsteller Objekt, wir haben es genannt Schreibkopf Methode: Diese Methode wird verwendet, um die anfängliche CSV -Zeile zu erstellen, die die Feldnamen enthält, die wir im Konstruktor übergeben haben.

Schließlich haben wir das angerufen Schriftsteller Methode, um alle CSV -Zeilen gleichzeitig zu schreiben und die Liste der Wörterbücher als Argument zu übergeben (hier haben wir sie von der verwiesen Zeichen_Data Variable). Alles erledigt!

Schlussfolgerungen

In diesem Artikel haben wir die Grundlagen des Lesens und Erstellens von CSV -Dateien mithilfe der Python -Programmiersprache gelernt. Wir haben gesehen, wie man die Zeilen einer CSV -Datei sowohl als Liste von Zeichenfolgen als auch in einem Wörterbuch verwendet Dictreader Objekt und wie Sie eine neue CSV -Datei erstellen, die zu der Zeit eine Zeile schreibt, oder alle Zeilen gleichzeitig. Schließlich haben wir gesehen, wie man eine CSV -Datei aus einer Liste von Wörterbüchern erstellt, die von einem API -Anruf zurückgegeben werden konnten. Wenn Sie mehr über die erfahren möchten CSV Python -Modul Bitte wenden Sie sich an die offizielle Dokumentation.

Verwandte Linux -Tutorials:

  • Eine Einführung in Linux -Automatisierung, Tools und Techniken
  • Mastering -Bash -Skriptschleifen beherrschen
  • Verschachtelte Schleifen in Bash -Skripten
  • Dinge zu installieren auf Ubuntu 20.04
  • Wie man Excel -Tabellen mit Python und…
  • So formatieren Sie Daten mit Spalte unter Linux
  • Mint 20: Besser als Ubuntu und Microsoft Windows?
  • Big Data Manipulation zum Spaß und Gewinn Teil 1
  • Big Data Manipulation zum Spaß und Gewinn Teil 2
  • Dinge zu tun nach der Installation Ubuntu 20.04 fokale Fossa Linux