Python permet de lire et de créer des fichiers textes.
#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)