Page 9

Lire et écrire dans un fichier

Python permet de lire et de créer des fichiers textes.

    Vous troverez ci-dessous des exemples pour :
  1. Créer un fichier .txt
  2. Lire un fichier .txt
  3. Ajouter une ligne à la fin d'un fichier .txt
#Création d'un fichier et écriture
print('1. creation du fichier')
nom='fichier1.txt'      #on crée une variable de type string
fichier=open(nom,'w')   #ouverture du fichier en écriture : 'w' pour write
for i in range(1,4):    #si le fichier n'existe pas, il est créé, sinon son contenu est écrasé
    fichier.write('ceci est la ligne {}\n'.format(i))
fichier.close()

#Lecture
print('2. lecture du fichier')
fichier=open(nom,'r')  #ouverture du fichier en lecture : 'r' pour read
liste=fichier.read()
print(liste)
fichier.close()

#ajout en fin de fichier
print('3. ajout de 2 lignes')
fichier=open(nom,'a')   #ouverture du fichier pour un ajout :'a' pour add
for i in range(4,6):    #si le fichier n'existe pas, il est créé, sinon on écrit à la suite
    fichier.write('ceci est la ligne {}\n'.format(i))
fichier.close()

#Variante pour la lecture
#L'instruction readlines permet de créer une liste...
#...contenant l'ensemble des lignes du fichiers
print('4. Creation et affichage d\'une liste')
fichier=open(nom,'r')
liste=fichier.readlines()
print(liste)
fichier.close()

#Variante pour la relecture
#Ici la variable fichier est une liste
print('5. Va comprendre')
fichier=open(nom,'r')
for i in fichier:
    print(i)
fichier.close()

Lorsqu'on manipule un fichier, il est recommandé d'utiliser le mot-clé with qui permet de fermer proprement le fichier une fois le bloc d'instruction exécuté.

Exercice 1 : calcul du nombre de ligne contenues dans le fichiers

print('6. Fonction qui renvoie le nombre de lignes d\'un fichier')
def nbligne(nom):
    with open(nom,'r') as fc:
        liste=fc.readlines()
        n=len(liste)
    return n

Exercice 2 : utilisation de la fonction

nom1='fichier1.txt'
print(nbligne(nom1))

Exercice 3 : Ecrire une fonction qui renvoie la liste de tous les mots du fichier

print('7. Liste des mots contenu dans le fichier')
def extraction(nom):
    liste=[]
    with open(nom,'r') as fc:
        for i in fc:
            for j in i.split(' '):  #coupe la ligne à chaque espace
                liste.append(j)
    return(liste)

Exercice 3 : Ecrire une fonction qui renvoie la liste de tous les mots du fichier

print('7. Liste des mots contenu dans le fichier')
def extraction(nom):
    liste=[]
    with open(nom,'r') as fc:
        for i in fc:
            for j in i.split(' '):  #coupe la ligne à chaque espace
                liste.append(j)
    return(liste)



Page 9