Cet article vous apporte des connaissances pertinentes sur python, qui présente principalement des problèmes liés à l'écriture et à la lecture de fichiers csv. CSV est un format de texte couramment utilisé pour stocker des données de tableau, y compris des nombres ou des caractères, j'espère que cela aidera tout le monde.
Apprentissage recommandé : Tutoriel Python
CSV (Comma Separated Values), c'est-à-dire des valeurs séparées par des virgules (également appelées valeurs séparées par des caractères, car le séparateur n'a pas besoin d'être une virgule), est un format de texte couramment utilisé pour stocker des données tabulaires, y compris des nombres ou des caractères. De nombreux programmes rencontreront des fichiers au format csv lors du traitement des données. Python est livré avec un module csv, spécialement utilisé pour gérer la lecture des fichiers csv
En créant un objet écrivain, deux méthodes principales sont utilisées. L'un est writerow, qui écrit une ligne. L'autre est writerows pour écrire plusieurs lignes
Utilisez DictWriter pour y écrire des données à l'aide d'un dictionnaire
Parlons d'abord de la première méthode d'écriture : Écrivez en créant un objet écrivain (écrivez une ligne à la fois)
Étapes : 1. Créer des données et un en-tête 2. Créer un objet écrivain 3. Écrire un en-tête 4. Parcourez la liste et écrivez chaque ligne de données au format csv
Le code est le suivant :
import csv person = [('xxx', 18, 193), ('yyy', 18, 182), ('zzz', 19, 185)]# 表头header = ['name', 'age', 'height']with open('person.csv', 'w', encoding='utf-8') as file_obj: # 1:创建writer对象 writer = csv.writer(file_obj) # 2:写表头 writer.writerow(header) # 3:遍历列表,将每一行的数据写入csv for p in person: writer.writerow(p)
Après l'écriture, un fichier person.csv apparaîtra dans le répertoire actuel. Cliquez avec le bouton droit sur afficher dans l'Explorateur pour ouvrir person.csv et afficher
Après l'ouverture, vous constaterez que les données écrites auront une ligne. breaks.
Étonnamment : Alors, comment devrions-nous résoudre ce problème
hacker : C'est très simple
Il suffit d'ajouter un paramètre lors de l'écriture de data newline=''Afin d'empêcher l'écriture de nouvelle ligne
Le code corrigé est le suivant :
import csv# 数据person = [('xxx', 18, 193), ('yyy', 18, 182), ('zzz', 19, 185)]# 表头header = ['name', 'age', 'height']with open('person.csv', 'w', encoding='utf-8', newline='') as file_obj: # 创建对象 writer = csv.writer(file_obj) # 写表头 writer.writerow(header) # 遍历,将每一行的数据写入csv for p in person: writer.writerow(p)
✅En créant un objet écrivain (écrivez plusieurs lignes à la fois)
Étapes : 1. Créez des données et des en-têtes de tableau 2. Créez un objet écrivain 3. Écrivez des en-têtes de tableau 4. Transmettez ce que vous voulez dans les lignes d'écriture. données traitées
import csv# 数据person = [('xxx', 18, 193), ('yyy', 18, 182), ('zzz', 19, 185)]# 表头header = ['name', 'age', 'height']with open('person.csv', 'w', encoding='utf-8', newline='') as file_obj: # 创建对象 writer = csv.writer(file_obj) # 写表头 writer.writerow(header) # 3.写入数据(一次性写入多行) writer.writerows(person)
Le résultat de l'écriture est le suivant :
Notes : Soyez prudent lorsque vous écrivez à l'aide d'un dictionnaire Le format des données transmis doit être un dictionnaire
S'il ne s'agit pas d'un dictionnaire, une erreur sera signalée
AttributeError : l'objet 'tuple' n'a pas d'attribut 'keys'
Étapes Créer les données et l'en-tête ( Les données doivent être dans le dictionnaire. format )2. Créer un objet DictWriter 3. Écrire l'en-tête 4. Écrire les données
import csv# 数据person = [ {'name': 'xxx', 'age': 18, 'height': 193}, {'name': 'yyy', 'age': 18, 'height': 182}, {'name': 'zzz', 'age': 19, 'height': 185},]# 表头header = ['name', 'age', 'height']with open('person.csv', 'w', encoding='utf-8', newline='') as file_obj: # 1.创建DicetWriter对象 dictWriter = csv.DictWriter(file_obj, header) # 2.写表头 dictWriter.writeheader() # 3.写入数据(一次性写入多行) dictWriter.writerows(person)
import csvwith open('person.csv', 'r', encoding='utf-8') as file_obj: # 1.创建reader对象 reader = csv.reader(file_obj) print(reader)
S'il est imprimé directement, l'objet csv.reader sera renvoyé , alors vous devez parcourir la liste
<_csv.reader objet>
Le code corrigé est le suivant :
import csvwith open('person.csv', 'r', encoding='utf-8') as file_obj: # 1.创建reader对象 reader = csv.reader(file_obj) # 2.遍历进行读取数据 for r in reader: print(r)
Les résultats de lecture sont les suivants :
['name', 'age', 'height']['xxx', '18', '193']['yyy', '18', '182']['zzz', '19', '185']
Si vous souhaitez imprimer un certain valeur dans la liste, vous pouvez utiliser l'impression d'index
print(r[0])
name xxx yyy zzz
import csvwith open('person.csv', 'r', encoding='utf-8') as file_obj: # 1.创建reader对象 dictReader = csv.DictReader(file_obj) # 2.遍历进行读取数据 for r in dictReader: print(r)
Le résultat renvoyé est le suivant :
OrderedDict([('name', 'xxx'), ('age', '18'), ('height', '193')])OrderedDict([('name', 'yyy'), ('age', '18'), ('height', '182')])OrderedDict([('name', 'zzz'), ('age', '19'), ('height', '185')])
À ce stade, si nous voulons obtenir une certaine valeur, nous devons spécifier la clé pour trouver la valeur
print(r['name'])
xxx yyy zzz
Ce qui précède est l'écriture d'un fichier csv dans le tutoriel de base de Python Saisissez et lisez, si vous avez des suggestions d'amélioration, veuillez laisser un message dans la zone de commentaire~
Apprentissage recommandé : Tutoriel Python
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!