Lesen einer CSV-Datei mit Python 2/3

Eine einfache Möglichkeit, CSV-Dateien aus Python-Programmen zu lesen.

Methode

Einfache Verwendung mit dem Standardbibliothek csv Modul.

Sample Funktioniert mit beiden Python 2/3. Es gibt japanische Unterstützung.

https://github.com/thombashi/PythonExamples/tree/master/csv

csv_read.py


from __future__ import print_function
from __future__ import unicode_literals
import argparse
import csv
import io

import six


parser = argparse.ArgumentParser()
parser.add_argument("csv_file_path")
parser.add_argument("--encoding", default="utf_8")
options = parser.parse_args()

csv_reader = csv.reader(
    io.open(options.csv_file_path, "r", encoding=options.encoding),
    delimiter=",",
    quotechar='"'
)

print("--- header ---\n{}\n".format(six.next(csv_reader)))
print("--- data ---")
for row in csv_reader:
    print(row)

Betriebsbeispiel: ascii

sample_ascii.csv


"Country or Area","Year","Area","Sex","Record Type","Reliability","Source Year","Value","Value Footnotes"
"Afghanistan","2014","Total","Both Sexes","Estimate - de facto","Final figure, incomplete/questionable reliability","2015","26556754","1"
"Afghanistan","2014","Total","Male","Estimate - de facto","Final figure, incomplete/questionable reliability","2015","13585933","1"
"Afghanistan","2014","Total","Female","Estimate - de facto","Final figure, incomplete/questionable reliability","2015","12970821","1"
$ ./csv_read.py sample_ascii.csv
--- header ---
['Country or Area', 'Year', 'Area', 'Sex', 'Record Type', 'Reliability', 'Source Year', 'Value', 'Value Footnotes']

--- data ---
['Afghanistan', '2014', 'Total', 'Both Sexes', 'Estimate - de facto', 'Final figure, incomplete/questionable reliability', '2015', '26556754', '1']
['Afghanistan', '2014', 'Total', 'Male', 'Estimate - de facto', 'Final figure, incomplete/questionable reliability', '2015', '13585933', '1']
['Afghanistan', '2014', 'Total', 'Female', 'Estimate - de facto', 'Final figure, incomplete/questionable reliability', '2015', '12970821', '1']

Betriebsbeispiel: UTF-8

sample_utf8.csv


dataset_id,year,publisher,group_title,frequency_of_update,data_format,language,resource_count
12971,2015,Agentur für Verbraucherangelegenheiten,Administrative und finanzielle,Jährlich,PDF,Englisch,1
12971,2015,Agentur für Verbraucherangelegenheiten,Administrative und finanzielle,Jährlich,HTML,japanisch,59
12971,2015,Agentur für Verbraucherangelegenheiten,Administrative und finanzielle,Jährlich,PDF,japanisch,4
12972,2015,Agentur für Verbraucherangelegenheiten,Administrative und finanzielle,Jährlich,HTML,japanisch,3
12972,2015,Agentur für Verbraucherangelegenheiten,Administrative und finanzielle,Jährlich,PDF,japanisch,6
12973,2015,Agentur für Verbraucherangelegenheiten,Administrative und finanzielle,Jährlich,PDF,japanisch,6
12974,2015,Agentur für Verbraucherangelegenheiten,Administrative und finanzielle,Jährlich,PDF,japanisch,4
12975,2015,Agentur für Verbraucherangelegenheiten,Administrative und finanzielle,Sonstiges (kostenlose Beschreibung),PDF,japanisch,7
12976,2015,Agentur für Verbraucherangelegenheiten,Administrative und finanzielle,Sonstiges (kostenlose Beschreibung),PDF,japanisch,4
$ ./csv_read.py sample_utf8.csv
--- header ---
['dataset_id', 'year', 'publisher', 'group_title', 'frequency_of_update', 'data_format', 'language', 'resource_count']

--- data ---
['12971', '2015', 'Agentur für Verbraucherangelegenheiten', 'Administrative und finanzielle', 'Jährlich', 'PDF', 'Englisch', '1']
['12971', '2015', 'Agentur für Verbraucherangelegenheiten', 'Administrative und finanzielle', 'Jährlich', 'HTML', 'japanisch', '59']
['12971', '2015', 'Agentur für Verbraucherangelegenheiten', 'Administrative und finanzielle', 'Jährlich', 'PDF', 'japanisch', '4']
['12972', '2015', 'Agentur für Verbraucherangelegenheiten', 'Administrative und finanzielle', 'Jährlich', 'HTML', 'japanisch', '3']
['12972', '2015', 'Agentur für Verbraucherangelegenheiten', 'Administrative und finanzielle', 'Jährlich', 'PDF', 'japanisch', '6']
['12973', '2015', 'Agentur für Verbraucherangelegenheiten', 'Administrative und finanzielle', 'Jährlich', 'PDF', 'japanisch', '6']
['12974', '2015', 'Agentur für Verbraucherangelegenheiten', 'Administrative und finanzielle', 'Jährlich', 'PDF', 'japanisch', '4']
['12975', '2015', 'Agentur für Verbraucherangelegenheiten', 'Administrative und finanzielle', 'Sonstiges (kostenlose Beschreibung)', 'PDF', 'japanisch', '7']
['12976', '2015', 'Agentur für Verbraucherangelegenheiten', 'Administrative und finanzielle', 'Sonstiges (kostenlose Beschreibung)', 'PDF', 'japanisch', '4']

Referenz

encoding - Python 2 and 3 csv reader - Stack Overflow http://stackoverflow.com/questions/5180555/python-2-and-3-csv-reader

Recommended Posts

Lesen einer CSV-Datei mit Python 2/3
[Python] Wie man Excel-Dateien mit Pandas liest
[Python] Mit Python in eine CSV-Datei schreiben
Ausgabe in eine CSV-Datei mit Python
So konvertieren Sie eine JSON-Datei mit Python Pandas in eine CSV-Datei
[Python] Lesen der CSV-Datei (Methode read_csv des Pandas-Moduls)
[Python] So konvertieren Sie eine Datenbankdatei in CSV
CSV-Datei mit Python lesen (CSV-Datei herunterladen und analysieren)
Lesen einer Excel-Datei (.xlsx) mit Pandas [Python]
Lesen Sie die Python-CSV-Datei
So erstellen Sie einen Befehl zum Lesen der Einstellungsdatei mit Pyramide
[Python] Speichern einer CSV-Datei als eindimensionale Array-Daten
[Python] Lesen Sie eine CSV-Datei mit großen Datenmengen mithilfe eines Generators
[ROS2] So spielen Sie eine Bag-Datei mit Start im Python-Format ab
So erstellen Sie eine JSON-Datei in Python
Lesen Sie mit Python Zeile für Zeile aus der Datei
Ich möchte mit Python in eine Datei schreiben
So lesen Sie Dateien in verschiedenen Verzeichnissen
Lesen Sie CSV mit Python-Pandas
Schreiben Sie mit Python in csv
Laden Sie die CSV-Datei mit Python herunter
Lesen und formatieren Sie CSV-Dateien gemischt mit Komma-Registerkarten mit Python-Pandas
Lesen Sie die CSV-Datei mit Python und konvertieren Sie sie unverändert in DataFrame
So konvertieren / wiederherstellen Sie einen String mit [] in Python
[Python] Wie zeichnet man mit Matplotlib ein Liniendiagramm?
Ich habe versucht, eine CSV-Datei mit Python zu berühren
So messen Sie die Wiedergabezeit von MP3-Dateien mit Python
[Python] Umgang mit Pandas read_html Lesefehler
[Python] Ein Memo zum vertikalen Schreiben von CSV mit Pandas
So speichern Sie eine von Python gekratzte Tabelle in CSV
Python-Skript, das eine JSON-Datei aus einer CSV-Datei erstellt
[Python] So erstellen Sie mit Matplotlib ein zweidimensionales Histogramm
Lesen von CSVs, die in Python nur Ganzzahlen enthalten
[Python] Wie zeichnet man mit Matplotlib ein Streudiagramm?
Verschiedene Möglichkeiten, die letzte Zeile einer CSV-Datei in Python zu lesen
Python: So verwenden Sie Async mit
Zusammenfassung zum Lesen numerischer Daten mit Python [CSV, NetCDF, Fortran Binary]
So legen Sie Google Text & Tabellen in einem Ordner zusammen in einer TXT-Datei mit Python ab
Hochauflösende akustische Signalverarbeitung (1) - Lesen einer 24-Bit-WAV-Datei mit Python
Erste Schritte mit Python
So berechnen Sie das Datum mit Python
So erstellen Sie eine Konfigurationsdatei
So setzen Sie einen Hyperlink zu "file: // hogehoge" mit sphinx-> pdf
So installieren Sie NPI + Senden Sie eine Nachricht an Python
So wechseln Sie die Konfigurationsdatei, die von Python gelesen werden soll
So konvertieren Sie mit Python [Anwendung] von einem Array in ein Wörterbuch
So führen Sie eine Python-Datei an einer Windows 10-Eingabeaufforderung aus
[Python] Lesen Sie die CSV-Datei und zeigen Sie die Abbildung mit matplotlib an
So importieren Sie Dateien in Python an eine beliebige Stelle
Erstellen einer Entwicklungsumgebung für die Python2.7-Serie mit Vagrant
[Python Kivy] So erstellen Sie mit pyinstaller eine exe-Datei
[Python] So geben Sie eine Pandas-Tabelle in eine Excel-Datei aus
Erstellen einer einfachen Power-Datei mit Python
Wie man pydoc auf Python Interpreter liest
So fügen Sie ein Paket mit PyCharm hinzu
[Python] Wie man eine Klasse iterierbar macht
[Python] So konvertieren Sie eine zweidimensionale Liste in eine eindimensionale Liste
So konvertieren Sie Python in eine exe-Datei
[Python] Konvertieren Sie CSV-Dateibegrenzer in Tabulatortrennzeichen