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.
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)
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
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!