Heim  >  Artikel  >  Backend-Entwicklung  >  Detaillierte Erläuterung der Beispiele für die Verarbeitung von CSV-Dateien in Python

Detaillierte Erläuterung der Beispiele für die Verarbeitung von CSV-Dateien in Python

零下一度
零下一度Original
2018-05-17 16:24:5810177Durchsuche

Python verarbeitet CSV-Dateien

CSV (Comma-Separated Values) sind durch Kommas getrennte Werte, die mit Excel geöffnet und angezeigt werden können. Da es sich um reinen Text handelt, kann er von jedem Editor geöffnet werden. Im Gegensatz zu Excel-Dateien gilt in CSV-Dateien:

  • Werte haben keinen Typ, alle Werte sind Zeichenfolgen

  • können keine Stile angeben wie Schriftfarbe

  • Die Breite und Höhe von Zellen kann nicht angegeben werden und Zellen können nicht zusammengeführt werden

  • Es gibt keine mehreren Arbeitsblätter

  • Bilddiagramme können nicht eingebettet werden

Verwenden Sie in CSV-Dateien , als Trennzeichen, um zwei Zellen zu trennen. So bedeutet a,,c, dass sich zwischen Zelle a und Zelle c eine leere Zelle befindet. Und so weiter.

Nicht jedes Komma stellt eine Abgrenzung zwischen Zellen dar. Auch wenn es sich bei der CSV-Datei um eine reine Textdatei handelt, sollten Sie darauf bestehen, ein spezielles Modul für die Verarbeitung zu verwenden. Python verfügt über ein integriertes CSV-Modul. Schauen wir uns zunächst ein einfaches Beispiel an.

Daten aus CSV-Datei lesen

import csv

filename = 'F:/Jupyter Notebook/matplotlib_pygal_csv_json/sitka_weather_2014.csv'with open(filename) as f:
    reader = csv.reader(f)print(list(reader))

data kann nicht direkt gedruckt werden. Die äußerste Ebene der Liste(n) ist eine Liste, und jede Datenzeile in der inneren Ebene ist in eine Liste. , ein bisschen so

[['name', 'age'], ['Bob', '14'], ['Tom', '23'], ...]

So können wir auf Bobs Alter zugreifenreader[1][1], durchlaufen in der for-Schleife wie folgt

import csv

filename = 'F:/Jupyter Notebook/matplotlib_pygal_csv_json/sitka_weather_2014.csv'with open(filename) as f:
    reader = csv.reader(f)for row in reader:# 行号从1开始print(reader.line_num, row)

Das sollte beachtet werden Der Leser kann nur einmal durchlaufen werden. Da Reader ein iterierbares Objekt ist, können Sie die Methode next verwenden, um jeweils eine Zeile abzurufen.

import csv

filename = 'F:/Jupyter Notebook/matplotlib_pygal_csv_json/sitka_weather_2014.csv'with open(filename) as f:
    reader = csv.reader(f)# 读取一行,下面的reader中已经没有该行了head_row = next(reader)for row in reader:# 行号从2开始print(reader.line_num, row)

Daten in die CSV-Datei schreiben

Es gibt Leser, die lesen können, und natürlich gibt es Schriftsteller, die schreiben können. Sie können jeweils eine Zeile oder mehrere Zeilen gleichzeitig schreiben.

import csv# 使用数字和字符串的数字都可以datas = [['name', 'age'],
         ['Bob', 14],
         ['Tom', 23],
        ['Jerry', '18']]with open('example.csv', 'w', newline='') as f:
    writer = csv.writer(f)for row in datas:
        writer.writerow(row)        # 还可以写入多行writer.writerows(datas)

Wenn newline='' nicht angegeben ist, wird für jede geschriebene Zeile eine Leerzeile geschrieben. Der obige Code generiert Folgendes.

name,age
Bob,14
Tom,23
Jerry,18
name,age
Bob,14
Tom,23
Jerry,18

DictReader- und DictWriter-Objekte

Mit DictReader können Sie Daten wie ein Wörterbuch bedienen, indem Sie die erste Zeile der Tabelle (normalerweise die Kopfzeile) als Schlüssel verwenden. Verwenden Sie den Schlüssel, um auf die Daten zuzugreifen, die diesem Schlüssel in der Zeile entsprechen.

import csv

filename = 'F:/Jupyter Notebook/matplotlib_pygal_csv_json/sitka_weather_2014.csv'with open(filename) as f:
    reader = csv.DictReader(f)for row in reader:# Max TemperatureF是表第一行的某个数据,作为keymax_temp = row['Max TemperatureF']print(max_temp)

Mit der DictWriter-Klasse können Sie Daten in Wörterbuchform schreiben, und der Schlüssel ist auch die Kopfzeile (die erste Zeile der Tabelle).

import csv

headers = ['name', 'age']

datas = [{'name':'Bob', 'age':23},
        {'name':'Jerry', 'age':44},
        {'name':'Tom', 'age':15}
        ]with open('example.csv', 'w', newline='') as f:# 标头在这里传入,作为第一行数据writer = csv.DictWriter(f, headers)
    writer.writeheader()for row in datas:
        writer.writerow(row)        # 还可以写入多行writer.writerows(datas)


Das obige ist der detaillierte Inhalt vonDetaillierte Erläuterung der Beispiele für die Verarbeitung von CSV-Dateien in Python. 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