Exemple de lecture et d'écriture de CSV avec Python

On m'a dit que je pouvais utiliser Python dans mon entreprise, donc comme mémorandum pour le traitement des données CSV.

Exemple d'entrée

infile.csv


number,name,birthymd,sex,yubin,adr1,adr2,sinsei_ymd,nintei_ymd,happu_ymd,type,pet,test_nowymd
0000111111,Taichiro Ando,19860602,1,1231111,BBB City, Préfecture AAA CCC-123,Exemple Villa A Chambre 001,20190501,20190507,20190507,1,0,20200229
0000222222,Ito Sumijiro,19920505,1,1232222,BBB City, Préfecture AAA CCC-123,Exemple Villa B Chambre 002,20190501,20190514,20190514,2,1,20200228
0000333333,Ukai Tasae,19990909,2,1233333,BBB City, Préfecture AAA CCC-123,Exemple Villa C Chambre 003,20190501,20190514,20190514,1,2,20200131
0000444444,Koshiro Esaki,19870831,1,1234444,BBB City, Préfecture AAA CCC-123,Exemple Villa D Chambre 004,20190501,20190507,20190507,2,0,20191231
0000555555,Okamoto Kogoro,19520205,1,1235555,BBB City, Préfecture AAA CCC-123,Exemple Villa E Chambre 005,20190601,20190615,20190615,1,2,20191130
0000666666,Kakizaki Kirokuro,19811030,1,1236666,BBB City, Préfecture AAA CCC-123,Exemple Villa F Chambre 006,20190601,20190608,20190608,1,2,20191129
0000777777,Jojima Kanako,19721103,2,1237777,BBB City, Préfecture AAA CCC-123,Exemple de chambre Villa G 007,20190601,20190608,20190608,2,1,20191030
0000888888,Nagimiya Ahachime,19330303,2,1238888,BBB City, Préfecture AAA CCC-123,Exemple Villa H Chambre 008,20190501,20190507,20190507,1,1,20190401
0000999999,Keido Kankuro,19680229,1,1239999,BBB City, Préfecture AAA CCC-123,Exemple Villa I Chambre 009,20190601,20190615,20190615,2,0,20190331
1111000000,Koyanagi Sarujuro,19200222,1,1240000,BBB City, Préfecture AAA CCC-123,Exemple Villa J Chambre 010,20190501,20190507,20190507,2,1,20190228
1111111111,Juichiro Sato,19430130,1,1241111,BBB City, Préfecture AAA CCC-123,Exemple de chambre Villa K 011,20190601,20190608,20190608,1,0,20190227
1111222222,Shishido Jujiro,19530301,1,1242222,BBB City, Préfecture AAA CCC-123,Exemple Villa L 012,20190501,20190507,20190507,2,1,20190131

Code de lecture / écriture

csv_in_out.py


#Initialisation variable
##Variables pour les compteurs
[line_count, person_count] = [0, 0]
##Variables liées aux valeurs d'entrée
[number, name, birthymd, sex, post, adr1, adr2, ymd_sinsei, ymd_nintei, ymd_happu, types, pet, ymd_test] = ['', '', '', '', '', '', '', '', '', '', '', '', '']
##Variable 1 liée à la valeur de sortie
[birth_year, birth_month, birth_day, infile, outfile, line, item_str, data_str] = [0, 0, 0, '', '', '', '', '']
##Variable 2 liée à la valeur de sortie (tableau vide)
item = set()
data = set()

#Lors de l'ouverture lors de la spécification du code de saut de ligne du fichier.
## \n(LF): OS basé sur Unix en général, Mac OS X, \r\n(CR+LF): Système d'exploitation Windows, \r(CR): Ancien Mac OS (9 ou antérieur)
with open('infile.csv', 'r', encoding='utf-8', newline='\n') as infile, \
    open('outfile.csv', 'w', encoding='utf-8', newline='\n') as outfile:

    #Lire et traiter le contenu du fichier ligne par ligne
    for line in infile:
        #Mappez les éléments de la ligne de lecture sous forme de chaîne de caractères aux variables correspondantes dans l'ordre à partir du début, séparées par des virgules.
        number, name, birthymd, sex, post, adr1, adr2, ymd_sinsei, ymd_nintei, ymd_happu, types, pet, ymd_test \
        = map(str, line.split(','))
        #Lire le nombre de lignes CSV +1
        line_count += 1

        #La première ligne du nombre de lignes CSV lues est le nom de l'élément. Les données réelles proviennent de la deuxième ligne.
        #Exemple de sortie de console pour la confirmation 1: ○ Traitement oculaire
        if line_count >= 2:
            person_count +=  1
            #Sortie de la console
            print(u'{}Nous traitons les yeux....'.format(person_count))

        #Exemple de sortie de console pour la confirmation 2: la date de naissance est supprimée à zéro et affichée
        if line_count >= 2:
            birth_year  = int(birthymd[0:4])
            birth_month = int(birthymd[4:6])
            birth_day   = int(birthymd[6:8])
            print(u'Date de naissance{}/{}/{}est.'.format(birth_year,birth_month,birth_day))

        #Exemple de sortie de console pour confirmation 3: Afficher le numéro, le nom, la date de naissance sous forme d'ensemble
        if line_count >= 2:
            #Sortie de la console (chaîne modifiée)
            print(u'nombre{}de{}Est{}/{}/{}naissance.'.format(number,name,birth_year,birth_month,birth_day))

        #La partie principale du traitement pour la sortie.
        ##Après avoir spécifié le nom de l'élément et les données réelles que vous souhaitez générer dans un tableau, remplacez-le par une chaîne de caractères séparés par des virgules et imprimez-le dans outfile.
        if line_count == 1:
            #Sortie de fichier (chaîne de caractères séparés par des virgules: nom de l'élément)
            item = ["nombre", "Nom complet", "Anniversaire", "sexe", "郵便nombre", "Adresse 1", "Adresse 2", "Date de la demande", "Date de certification", "Date d'émission", "Type", "Animal de compagnie", "Date du test"]
            item_str = ",".join(map(str, item))
            print(item_str, file=outfile)
        if line_count >= 2:
            #Sortie de fichier (chaîne de caractères séparés par des virgules: données réelles)
            # < !Si vous souhaitez traiter les données ou les compter, écrivez la logique ici.! >
            data = [number, name, birthymd, sex, post, adr1, adr2, ymd_sinsei, ymd_nintei, ymd_happu, types, pet, ymd_test]
            data_str = ",".join(map(str, data))
            print(data_str, file=outfile, end='')

        #Exemple de sortie console pour confirmation 4: Afficher les données de sortie
        if line_count >= 2:
            print(u'file output >> {}'.format(data_str),end='')

    #Exemple de sortie de la console de confirmation 5: Affichage du nombre total de processus
    print(u'') #nouvelle ligne
    print(u'total{}A traité l'affaire.'.format(person_count))

Résultat de sortie

outfile.csv


nombre,Nom complet,Anniversaire,sexe,郵便nombre,Adresse 1,Adresse 2,Date de la demande,Date de certification,Date d'émission,Type,Animal de compagnie,Date du test
0000111111,Taichiro Ando,19860602,1,1231111,BBB City, Préfecture AAA CCC-123,Exemple Villa A Chambre 001,20190501,20190507,20190507,1,0,20200229
0000222222,Ito Sumijiro,19920505,1,1232222,BBB City, Préfecture AAA CCC-123,Exemple Villa B Chambre 002,20190501,20190514,20190514,2,1,20200228
0000333333,Ukai Tasae,19990909,2,1233333,BBB City, Préfecture AAA CCC-123,Exemple Villa C Chambre 003,20190501,20190514,20190514,1,2,20200131
0000444444,Koshiro Esaki,19870831,1,1234444,BBB City, Préfecture AAA CCC-123,Exemple Villa D Chambre 004,20190501,20190507,20190507,2,0,20191231
0000555555,Okamoto Kogoro,19520205,1,1235555,BBB City, Préfecture AAA CCC-123,Exemple Villa E Chambre 005,20190601,20190615,20190615,1,2,20191130
0000666666,Kakizaki Kirokuro,19811030,1,1236666,BBB City, Préfecture AAA CCC-123,Exemple Villa F Chambre 006,20190601,20190608,20190608,1,2,20191129
0000777777,Jojima Kanako,19721103,2,1237777,BBB City, Préfecture AAA CCC-123,Exemple de chambre Villa G 007,20190601,20190608,20190608,2,1,20191030
0000888888,Nagimiya Ahachime,19330303,2,1238888,BBB City, Préfecture AAA CCC-123,Exemple Villa H Chambre 008,20190501,20190507,20190507,1,1,20190401
0000999999,Keido Kankuro,19680229,1,1239999,BBB City, Préfecture AAA CCC-123,Exemple Villa I Chambre 009,20190601,20190615,20190615,2,0,20190331
1111000000,Koyanagi Sarujuro,19200222,1,1240000,BBB City, Préfecture AAA CCC-123,Exemple Villa J Chambre 010,20190501,20190507,20190507,2,1,20190228
1111111111,Juichiro Sato,19430130,1,1241111,BBB City, Préfecture AAA CCC-123,Exemple de chambre Villa K 011,20190601,20190608,20190608,1,0,20190227
1111222222,Shishido Jujiro,19530301,1,1242222,BBB City, Préfecture AAA CCC-123,Exemple Villa L 012,20190501,20190507,20190507,2,1,20190131

Sortie de confirmation


Nous traitons la première personne....
La date de naissance est 1986/6/C'est 2.
Taichiro Ando avec le numéro 0000111111 est 1986/6/Né 2
file output >> 0000111111,Taichiro Ando,19860602,1,1231111,BBB City, Préfecture AAA CCC-123,Exemple Villa A Chambre 001,20190501,20190507,20190507,1,0,20200229
Nous traitons la deuxième personne....
La date de naissance est 1992/5/Il est 5.
Ito Sumijiro avec le numéro 0000222222 est 1992/5/Né 5
file output >> 0000222222,Ito Sumijiro,19920505,1,1232222,BBB City, Préfecture AAA CCC-123,Exemple Villa B Chambre 002,20190501,20190514,20190514,2,1,20200228
Nous traitons la troisième personne....
La date de naissance est 1999/9/Il est 9.
Ukai Tasae avec le numéro 0000333333 est 1999/9/Né en 9.
file output >> 0000333333,Ukai Tasae,19990909,2,1233333,BBB City, Préfecture AAA CCC-123,Exemple Villa C Chambre 003,20190501,20190514,20190514,1,2,20200131
Nous traitons la 4ème personne....
La date de naissance est 1987/8/Il est 31 ans.
Koshiro Esaki avec le numéro 0000444444 est 1987/8/Née 31
file output >> 0000444444,Koshiro Esaki,19870831,1,1234444,BBB City, Préfecture AAA CCC-123,Exemple Villa D Chambre 004,20190501,20190507,20190507,2,0,20191231
Nous traitons la 5ème personne....
La date de naissance est 1952/2/Il est 5.
Kogoro Okamoto avec le numéro 0000555555 est 1952/2/Né 5
file output >> 0000555555,Okamoto Kogoro,19520205,1,1235555,BBB City, Préfecture AAA CCC-123,Exemple Villa E Chambre 005,20190601,20190615,20190615,1,2,20191130
Nous traitons la 6ème personne....
La date de naissance est 1981/10/Il est 30 ans.
Kakizaki Kirokuro avec le numéro 0000666666 est 1981/10/Née 30
file output >> 0000666666,Kakizaki Kirokuro,19811030,1,1236666,BBB City, Préfecture AAA CCC-123,Exemple Villa F Chambre 006,20190601,20190608,20190608,1,2,20191129
Nous traitons la 7ème personne....
La date de naissance est 1972/11/C'est 3.
Kanako Jojima avec le numéro 0000777777 est 1972/11/Né 3
file output >> 0000777777,Jojima Kanako,19721103,2,1237777,BBB City, Préfecture AAA CCC-123,Exemple de chambre Villa G 007,20190601,20190608,20190608,2,1,20191030
Nous traitons la 8ème personne....
La date de naissance est 1933/3/C'est 3.
Nagimiya Ahachime avec le numéro 0000888888 est 1933/3/Né 3
file output >> 0000888888,Nagimiya Ahachime,19330303,2,1238888,BBB City, Préfecture AAA CCC-123,Exemple Villa H Chambre 008,20190501,20190507,20190507,1,1,20190401
Nous traitons la 9ème personne....
Date de naissance: 1968/2/Il est 29 ans.
Keido Kankuro avec le numéro 0000999999 est 1968/2/Né le 29.
file output >> 0000999999,Keido Kankuro,19680229,1,1239999,BBB City, Préfecture AAA CCC-123,Exemple Villa I Chambre 009,20190601,20190615,20190615,2,0,20190331
Nous traitons la 10ème personne....
La date de naissance est 1920/2/Il est 22 ans.
Koyanagi Sarjuro avec le numéro 1111000000 est 1920/2/22 Né.
file output >> 1111000000,Koyanagi Sarujuro,19200222,1,1240000,BBB City, Préfecture AAA CCC-123,Exemple Villa J Chambre 010,20190501,20190507,20190507,2,1,20190228
Nous traitons la 11e personne....
La date de naissance est 1943/1/Il est 30 ans.
Juichiro Sato avec le numéro 1111111111 est 1943/1/Née 30
file output >> 1111111111,Juichiro Sato,19430130,1,1241111,BBB City, Préfecture AAA CCC-123,Exemple de chambre Villa K 011,20190601,20190608,20190608,1,0,20190227
Nous traitons la 12ème personne....
La date de naissance est 1953/3/C'est 1.
Shishido Jujiro avec le numéro 1111222222 est 1953/3/Né 1
file output >> 1111222222,Shishido Jujiro,19530301,1,1242222,BBB City, Préfecture AAA CCC-123,Exemple Villa L 012,20190501,20190507,20190507,2,1,20190131
Au total, 12 cas ont été traités.

Note

Peut-il être utilisé comme modèle pour le traitement simple ou l'agrégation des valeurs d'élément contenues dans les données CSV?

Recommended Posts

Exemple de lecture et d'écriture de CSV avec Python
Lire et écrire du CSV avec Python
Lecture et écriture de fichiers CSV Python
Lire et écrire NetCDF avec Python
Lire et écrire des fichiers JSON avec Python
Lire et écrire des fichiers CSV et JSON avec Python
La lecture et l'écriture s'adaptent aux fichiers avec Python (mémo)
Lire et écrire des fichiers csv
Code de caractères pour la lecture et l'écriture de fichiers csv avec python
Lire et écrire du texte en Python
Coexistence de Python2 et 3 avec CircleCI (1.0)
Grattage de la nourriture avec python et sortie en CSV
Étude à partir de Python Lecture et écriture de fichiers Hour9
Lire JSON avec Python et générer un CSV
Enveloppez la lecture et l'écriture de GCP dans Secret Manager avec les sous-commandes google
Implémentation de l'arbre TRIE avec Python et LOUDS
Comparaison d'écriture R et Python (méthode de division mutuelle euclidienne)
Poursuite du développement multi-plateforme avec Electron et Python
[Python] Lecture de fichiers CSV
Traitement pleine largeur et demi-largeur des données CSV en Python
Téléchargez facilement et partiellement mp4 avec python et youtube-dl!
Visualisez la gamme d'insertions internes et externes avec python
Chargement / affichage et accélération de gif avec python [OpenCV]
Comparaison de CoffeeScript avec la grammaire JavaScript, Python et Ruby
Programmation avec Python et Tkinter
Chiffrement et déchiffrement avec Python
Lire csv avec des pandas python
Python et matériel - Utilisation de RS232C avec Python -
Lire des fichiers .txt avec Python
Écrire en csv avec Python
Installation source et installation de Python
Fonctionne avec Python et R
Effectuer une analyse isocurrent des canaux en eau libre avec Python et matplotlib
[Python] Lisez le fichier csv et affichez la figure avec matplotlib
Débarrassez-vous des données sales avec Python et les expressions régulières
Détecter les objets d'une couleur et d'une taille spécifiques avec Python
[Python: UnicodeDecodeError] L'une des solutions d'erreur lors de la lecture de CSV
Exemple d'analyse HTTP GET et JSON avec Pepper Python
Jouez avec le mécanisme de mot de passe de GitHub Webhook et Python
Explication du CSV et exemple d'implémentation dans chaque langage de programmation
[Python] Lecture facile des fichiers image du numéro de série avec OpenCV
Notes sur la lecture et l'écriture d'images TIFF float32 avec python
Communiquez avec FX-5204PS avec Python et PyUSB
Briller la vie avec Python et OpenCV
L'histoire de Python et l'histoire de NaN
Installez Python 2.7.9 et Python 3.4.x avec pip.
Réseau neuronal avec OpenCV 3 et Python 3
Modulation et démodulation AM avec python
Installer SciPy et matplotlib (Python)
Créer Apache Log CSV avec Python
Scraping avec Node, Ruby et Python
[Python] Ecrire dans un fichier csv avec Python
Sortie vers un fichier csv avec Python
Grattage avec Python et belle soupe
Premiers pas avec Python Bases de Python
Encodage et décodage JSON avec python
Introduction à Hadoop et MapReduce avec Python
[GUI en Python] PyQt5-Glisser-déposer-
Ceci et cela des propriétés python
Jeu de vie avec Python! (Le jeu de la vie de Conway)