Maison  >  Article  >  développement back-end  >  Résumé des connaissances Python : écriture et lecture de fichiers csv

Résumé des connaissances Python : écriture et lecture de fichiers csv

WBOY
WBOYavant
2022-04-02 12:53:102906parcourir

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.

Résumé des connaissances Python : écriture et lecture de fichiers csv

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

écriture 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

La première méthode d'écriture (en créant un objet écrivain)

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

Résumé des connaissances Python : écriture et lecture de fichiers csv
Résumé des connaissances Python : écriture et lecture de fichiers csv
Résumé des connaissances Python : écriture et lecture de fichiers csv
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)

Résumé des connaissances Python : écriture et lecture de fichiers csv
✅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 :

Résumé des connaissances Python : écriture et lecture de fichiers csv

La deuxième méthode d'écriture (utilisez DictWriter pour écrire des données à l'aide d'un dictionnaire)

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)

Résumé des connaissances Python : écriture et lecture de fichiers csv

Lecture CSV

Lecture via reader()

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

Lire via dictreader()

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!

Déclaration:
Cet article est reproduit dans:. en cas de violation, veuillez contacter admin@php.cn Supprimer