Avec Python, il est possible de lire et d'écrire des données depuis un fichier texte. Cette méthode est souvent utilisée pour manipuler une grosse masse de données ou pour sauvegarder des données sur un ordinateur.
Avant de lire ou d'écrire dans un fichier, il faut ouvrir un fichier. Pour cela, on utilise la fonction open
et le chemin du fichier.
fichier = open('/srv/app/mon_fichier.txt', 'w')
Quelques précisions sur la fonction open
:
open
précise le chemin du fichier. Il peut être absolu ou relatif.w
pour le mode écriture (write).r
pour le mode lecture (read).a
pour le mode ajout (append).Si le fichier n'existait pas, il sera créé.
Lorsque vous avez fini de manipuler le fichier, il faut impérativement le fermer grâce à la méthode close
.
fichier = open('mon_fichier.txt','w')
# suite des opérations
fichier.close()
Pour écrire dans un fichier, on utilise la méthode write
.
fichier = open('mon_fichier.txt', 'w')
fichier.write('bonjour le monde')
fichier.close()
Pour lire un fichier, on peut utiliser plusieurs méthodes :
read
qui permet de lire le fichier en entier.fichier = open('mon_fichier.txt', 'r')
fichier.read()
fichier.close()
read
permet de lire caractères en ajoutant un entier en paramètre.fichier = open('mon_fichier.txt', 'r')
fichier.read(150)
fichier.close()
readline
qui permet de lire le fichier ligne par ligne. À chaque appel de cette méthode, on lit une supplémentaire.fichier = open('mon_fichier.txt', 'r')
fichier.readline()
fichier.close()
Avec la méthode readline
, il est alors assez simple de parcourir l'ensemble d'un fichier ligne par ligne.
line = fichier.readline()
while line != "":
line = line.rstrip('\n')
print(line)
line = fichier.readline()
fichier.close()
La méthode
rstrip
permet de supprimer le retour à ligne.
Question 1 - Écrire une fonction ecrire_liste
qui prend en paramètre un nombre entier. Cette fonction génère un nouveau fichier dans lequel sont écrits les nombres de 0 jusqu'au nombre passé en paramètre.
def ecrire_liste(nombre:int) -> None:
return
Question 1 - Écrire une fonction fable
. Cette fonction permet d'afficher le contenu du fichier la_cigale_et_la_fourmi.txt.
def fable():
pass
Question 2 - Votre texte affiché comporte quelques problèmes : les accents ne sont pas pris en compte. Modifier votre programme avec la ligne suivante pour ajouter la prise en charge de l'UTF-8.
fichier = open('la_cigale_et_la_fourmi.txt', 'r', encoding="utf8")
Question 1 - Écrire une fonction copier_coller
qui prend en paramètre un nom de fichier. Cette fonction génère une copie du fichier dont le nom est passé en paramètre. On ajoutera « (copie) » au nom du nouveau fichier.
def copier_coller(nom_fichier:str) -> None:
pass
Question 1 - Écrire une fonction bloc_notes
qui prend en paramètre un nom de fichier. Voici le fonctionnement de cette fonction :
def bloc_note(nom_fichier:str) -> None:
pass
On utilise le fichier notes.txt pour stocker les notes des élèves dans différentes matières. Il est composé du titre de la matière et des différentes notes. Les matières sont séparées des notes par le symbole deux-points et chaque note est séparée par un tiret.
Question 1 - Écrire une fonction afficher_note_moyenne
qui prend en paramètre un nom de fichier et une matière sous la forme d'une chaine de caractères. Cette fonction affiche l'ensemble des notes de la matière et la moyenne de chaque matiere.
def afficher_note_moyenne(nom_fichier, matiere:str) -> None:
pass
Question 2 - Écrire une fonction ajouter_note
qui prend en paramètre un nom de fichier, une matière et une note. Cette fonction ajoute une note dans le fichier :
Voici quelques précisions :
def ajouter_note(nom_fichier:str, matiere:str, note:float) -> None:
pass
Question 3 - Un élève a validé une matière si la moyenne des notes est supérieure à 10. On souhaite ajouter à la fin de chaque ligne le terme « VALIDE » ou «NON VALIDE» en fonction de la moyenne de chaque matière.
Écrire une fonction validation
qui prend en paramètre un nom de fichier. Cette fonction ajoutera le bon terme en fin de ligne. Dans ce cas, un nouveau fichier sera généré dont le format est identique au format d'origine.
Cette fonction retourne un tuple, composé du nombre de matières validées et non validées.
def validation(nom_fichier:str) -> tuple:
return