CSV (Comma-Separated Values) sont des valeurs séparées par des virgules, qui peuvent être ouvertes et visualisées avec Excel. Puisqu’il s’agit de texte brut, il peut être ouvert par n’importe quel éditeur. Contrairement aux fichiers Excel, dans les fichiers CSV :
les valeurs n'ont pas de type, toutes les valeurs sont des chaînes
ne peut pas spécifier de styles tels que couleur de la police
La largeur et la hauteur des cellules ne peuvent pas être spécifiées et les cellules ne peuvent pas être fusionnées
Il n'y a pas plusieurs feuilles de calcul
Impossible d'intégrer des graphiques d'images
Dans les fichiers CSV, utilisez ,
comme séparateur pour séparer deux cellules. Comme ça a,,c
signifie qu'il y a une cellule vide entre la cellule a
et la cellule c
. Et ainsi de suite.
Toutes les virgules ne représentent pas une démarcation entre les cellules. Ainsi, même si le CSV est un fichier texte brut, insistez pour utiliser un module dédié pour le traitement. Python dispose d'un module csv intégré. Regardons d’abord un exemple simple.
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
ne peut pas être imprimé directement. La couche la plus externe de la liste (données) est une liste, et chaque ligne de données de la couche interne est dedans. une liste. , un peu comme ça
[['name', 'age'], ['Bob', '14'], ['Tom', '23'], ...]
On peut donc accéder à l'âge de Bob comme çareader[1][1]
, parcouru dans la boucle for comme suit
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)
Il est à noter que le lecteur ne peut être Traverse qu'une seule fois. Puisque reader est un objet itérable, vous pouvez utiliser la méthode next
pour obtenir une ligne à la fois.
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)
Il y a des lecteurs qui savent lire, et bien sûr, il y a des écrivains qui peuvent écrire. Vous pouvez écrire une ligne à la fois ou plusieurs lignes à la fois.
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)
Si newline=''
n'est pas précisé, une ligne vierge sera écrite pour chaque ligne écrite. Le code ci-dessus génère ce qui suit.
name,age Bob,14 Tom,23 Jerry,18 name,age Bob,14 Tom,23 Jerry,18
En utilisant DictReader, vous pouvez exploiter les données comme un dictionnaire, en utilisant la première ligne du tableau (généralement l'en-tête) comme clé. Utilisez key pour accéder aux données correspondant à cette clé dans la ligne.
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)
En utilisant la classe DictWriter, vous pouvez écrire des données sous forme de dictionnaire, et la clé est également l'en-tête (la première ligne du tableau).
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)
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!