Outils pour utilisateurs

Outils du site


icn:facultatif:c_langage_python_fichier

Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Les deux révisions précédentes Révision précédente
Prochaine révision
Révision précédente
icn:facultatif:c_langage_python_fichier [2019/09/26 20:22]
techer.charles_educ-valadon-limoges.fr
icn:facultatif:c_langage_python_fichier [2019/09/26 20:47] (Version actuelle)
techer.charles_educ-valadon-limoges.fr
Ligne 73: Ligne 73:
 Ici, ligne contient tous les champs de l'enregistrement qui vient d'être lu, chaque champ séparé par un point-virgule. Pour isoler chaque champ, il faut utiliser la commande split vue lors du cours sur les chaînes de caractères. Ici, ligne contient tous les champs de l'enregistrement qui vient d'être lu, chaque champ séparé par un point-virgule. Pour isoler chaque champ, il faut utiliser la commande split vue lors du cours sur les chaînes de caractères.
 <code python> <code python>
-mon_fichier = open("test.csv", "r"+with open("test.csv", "r"as mon_fichier: 
-ligne = mon_fichier.readline() +   ligne = mon_fichier.readline() 
-nom = ligne.split(';')[1] +   nom = ligne.split(';')[1] 
-prenom = ligne.split(';')[2]+   prenom = ligne.split(';')[2] 
 +   print(f'Mon nom est {nom} et mon prénom est {prenom}')
 </code> </code>
 ligne.split(' ; ') avec l'indice i permet d'isoler le ième champ de la ligne. //Il faut se rappeler que les champs sont numérotés à partir de 0.// ligne.split(' ; ') avec l'indice i permet d'isoler le ième champ de la ligne. //Il faut se rappeler que les champs sont numérotés à partir de 0.//
  
-=== Comment détecter la fin d'un fichier du fichier ===+Dans l'instruction **print** est utilisé un **f-string**. La **chaîne de caractères est formatée** avant affichage en remplaçant les variables indiquées entre **accolades** par leur contenu.
  
-Il faut savoir que chaque ligne se termine par un caractère de contrôle invisible \n qui correspond à "passage à la ligne suivante"+=== Comment lire tout le contenu du fichier ===
-Si l'on veut lire un fichier de la 1ère à la dernière ligne, on peut utiliser l'exemple suivant: +
-<code python> +
-mon_fichier = open("test.csv", "r"+
-ligne mon_fichier.readline() +
-while ligne !="\n": +
-    ligne mon_fichier.readline() +
-    #exploitation de la ligne +
-mon_fichier.close  +
-</code>+
  
-**Solution plus élégante avec une boucle for** : +Il suffit d'utiliser une boucle **for** : 
 <code python> <code python>
-mon_fichier = open("test.csv", "r"+with open("test.csv", "r"as mon_fichier: 
-for ligne in mon_fichier: +    for ligne in mon_fichier: 
-    #exploitation de la ligne +        nom = ligne.split(';')[1] 
-mon_fichier.close +        prenom = ligne.split(';')[2] 
 +        print(f'Mon nom est {nom} et mon prénom est {prenom}')
 </code> </code>
 ==== Ecriture dans un fichier ==== ==== Ecriture dans un fichier ====
Ligne 107: Ligne 100:
  
 <code python> <code python>
-mon_fichier = open("test.csv", "a")  +with open("test.csv", "a"as mon_fichier: 
-mon_fichier.write("1010"+";"+"Pasqualini"+";"+"claude\n") +    mon_fichier.write("1010"+";"+"Pasqualini"+";"+"claude\n")
-mon_fichier.close() +
 </code> </code>
 <WRAP center round info> <WRAP center round info>
-**Autre écriture** pour **ajouter** une information au fichier : 
-<code python> 
-with open("test.csv", 'a') as mon_fichier: 
-   mon_fichier.write("1010"+";"+"Pasqualini"+";"+"claude\n") 
-</code> 
 le fichier est automatiquement fermé le fichier est automatiquement fermé
 </WRAP> </WRAP>
Ligne 130: Ligne 116:
 <code python> <code python>
 import csv import csv
-mon_fichier = open("eleves.csv", "r"+with open("test.csv", "r"as mon_fichier: 
-contenu = csv.reader(mon_fichier, delimiter=';'+    contenu = csv.reader(mon_fichier, delimiter=';'
-for ligne in contenu: +    for ligne in contenu: 
-    #exploitation de la ligne +       #exploitation de la ligne 
-    print(ligne[1], " ", ligne[2]) +       print(f'Mon nom est {ligne[1]} et mon prénom est {ligne[2]}')
-mon_fichier.close+
 </code>  </code> 
  
-=== Ecrire dans une fichier CSV ===+=== Ecrire dans un fichier CSV ===
  
 <code python> <code python>
 import csv import csv
-mon_fichier = open("eleves.csv", "a"+with open("test.csv", "a",newline=''as mon_fichier: 
-contenu = csv.writer(mon_fichier) +    contenu = csv.writer(mon_fichier, quotechar=';'
-contenu.writerow( ("1515","Dupond","Charles") ) +    contenu.writerow( ("1515","Dupond","Charles") )
-mon_fichier.close+
 </code>  </code> 
 +
 +  * lors de l'ouverture du fichier, il faut préciser le paramètre  **newline=''** afin de ne pas créer de ligne vide ;
 +  * le paramètre **quotechar=';'** permet de change le délimiteur **virgule** par défaut par celui qui est indiqué c'est à dire le **point-virgule**.
 ===== Gérer des dictionnaires ===== ===== Gérer des dictionnaires =====
 Python permet d'enregistrer des données d'un **dictionnaire** en utilisant le **format JSON**. Voici les mêmes données sous forme d'un tableau contenant des dictionnaires :  Python permet d'enregistrer des données d'un **dictionnaire** en utilisant le **format JSON**. Voici les mêmes données sous forme d'un tableau contenant des dictionnaires : 
icn/facultatif/c_langage_python_fichier.1569522132.txt.gz · Dernière modification: 2019/09/26 20:22 de techer.charles_educ-valadon-limoges.fr