Fichiers

-> Les solutions proposées ne sont pas forcément les meilleures ! Elles peuvent même contenir des coquilles... C'est pourquoi je vous invite à m'envoyer un commentaire pour toutes suggestions, critiques ou autres.
De même, votre propre correction et vos erreurs sont les bienvenues ! (quelque soit la version Python utilisée ou le langage)



♣ Exercice F1:  [ add_comment Ajouter un commentaire ] [ comment 0 commentaires ]
                                                                                                                       
-Rappel de l'énoncé : L'exercice consiste à créer une fonction NbrLigne qui a pour paramètre le nom d'un fichier (texte) et qui renvoie le nombre de lignes de ce fichier.

-Une solution faite avec Python 2.7

def
NbrLigne():                                     L0
    fichier=open('fichier.txt','r')                L1
    i=0                                                      L2
    chaine=fichier.readline()                    L3
    while chaine !=' ':                               L4
        i+=1                                                L5
        chaine=fichier.readline()                L6
    fichier.close()                                     L7
    return(i)                                              L8

-Explications :
Mon fichier s'appelle fichier.txt. Il se trouve dans le dossier où mon script python est enregistré. Si ce n'est pas le cas pour vous, il faut que vous écriviez le chemin menant à votre fichier à la place de 'fichier.txt'. (Par exemple : 'C:\Users\Sophie\Mes Projets\courspython\fichier.txt' ).  ATTENTION ! Une ligne constituée d'un espace est comptabilisée dans le nombre de lignes et le fichier se termine avec des "lignes vides".

L1. Tout d'abord j'ouvre mon fichier avec la fonction open en mode lecture ('r'=read).
L2. Je crée i,  le nombre de lignes. Je l'initialise à 0 puisque je ne sais pas encore combien j'ai de lignes dans mon fichier.
L3. Je lis la première ligne du fichier grâce à la méthode readline. Ce que j'ai lu est enregistré dans la variable nommée chaine.

Boucle while : (à chaque boucle on va lire une nouvelle "ligne" qu'on va stocker dans la variable chaine )
 L4. Tant que la variable chaine est une chaîne de caractères non vide,
L5. c'est qu'il s'agit d'une ligne, donc j'incrémente le nombre de lignes i
L6. Et je lis la ligne suivante.

Fin boucle while : Lorsqu'on arrive ici c'est qu'on est sorti de la boucle while, c'est-à-dire qu'on a croisé une "ligne vide".
L7. On n'oublie pas de refermer le fichier avec la méthode close.
L8. On renvoie le nombre de ligne obtenue i grâce à la fonction return .




♣ Exercice F2 : 

-Rappel de l'énoncé : a. Créez un autre fichier texte nommé La_mesure_de_lhomme.txt et écrire la chaîne de caractères dedans.

-Une solution faite avec Python 2.7

le script doit contenir ceci :
citation=" La mesure de l'homme. \n \n Ce n est pas celui qui critique qui est important, ni celui qui montre du doigt comment l homme fort trébuche ou comment l homme d action aurait pu faire mieux. \n L hommage est dû à celui ou à celle qui se bat dans l arène, dont le visage est couvert de poussière et de sueur, qui va de l avant vaillamment, qui commet des erreurs et en commettra encore, car il n y a pas d efforts humains sans erreurs et imperfections. C est à lui ou à elle qu appartient l hommage, à celui ou à celle dont l enthousiasme et la dévotion sont grands, à celui ou à celle qui se consume pour une cause importante, à celui ou à celle qui, au mieux, connaîtra le triomphe du succès, et au pis, s il échoue, saura qu il a échoué alors qu il risquait courageusement."

Voici maintenant le reste du script :

#a)
fichier=open("la_mesure_de_lhomme.txt",'w')         L1
fichier.write(citation)                                                 L2
fichier.close()                                                             L3

-Explications :
L1. On ouvre le la_mesure_de_lhomme.txt en mode 'w' (w= write) à l'aide de la fonction open et on l'appelle fichier.
L2. Puis on écrit la citation dans le fichier à l'aide de la méthode write.
L3. On n'oublie pas de refermer le fichier.

ATTENTION !! le mode 'w' (=write) ne permet que d'écrire dans le fichier ouvert avec ce mode en écrasant ce qu'il y avait dedans ! Ainsi les données précédentes du fichier seront supprimées.
Cependant, si le fichier n'existait pas auparavant, ce mode permet de le créer.

-Rappel de l'énoncé :  b. Écrivez le contenu du fichier Demi.txt à la suite du fichier La_mesure_de_lhomme.txt.

####b)
fichier=open("la_mesure_de_lhomme.txt",'a')         L1
fic_text=open("Demi.txt",'r')                                    L2
texte=fic_text.read()                                                 L3
fichier.write(texte)                                                    L4
fic_text.close()                                                          L5
fichier.close()                                                            L6

-Explications:
L1. On ouvre la_mesure_de_lhomme.txt en mode 'a' (=append) à l'aide de la fonction open et on l'appelle fichier,
L2. On ouvre le Demi.txt en mode 'r' (w= read) à l'aide de la fonction open et on l'appelle fic_text.
L3. On lit le fichier le Demi.txt par l'intermédiaire de fic_text.
L4. Puis on écrit dans la_mesure_de_lhomme.txt ce que l'on a lu, par l'intermédiaire de fichier.
L5. et L6. On n'oublie pas de refermer les fichiers !

ATTENTION !! le mode 'a' (=append) ne permet que d'écrire dans le fichier ouvert avec ce mode. L'écriture se fait par ajout, c'est-à-dire qu'elle suit ce qu'il y avait précédemment dans le fichier sans l'écraser.
Cependant, si le fichier n'existait pas auparavant, cela renvoie une erreur.

-Rappel de l'énoncé : c. Affichez le contenu du fichier La_mesure_de_lhomme.txt.
###c)
fichier=open("la_mesure_de_lhomme.txt",'r')         L1
print(fichier.read())                                                   L2
fichier.close()                                                            L3

-Explications :
 L1. On ouvre la_mesure_de_lhomme.txt en mode 'r' (w= read) à l'aide de la fonction open et on l'appelle fichier.
L2. Ensuite on affiche ce qu'on lit dans le fichier. Ici, la lecture se fait à partir de la méthode read et l'affichage s'effectue à partir de la fonction print.
L3. On n'oublie pas de refermer le fichier !


♣ Exercice F4: 

-Rappel de l'énoncé : Le but de l'exercice est d'analyser certaines données du fichier. Il consiste à créer un script permettant d'afficher l'évolution de la taille moyenne et du poids moyen en fonction de l'année. L'affichage doit se faire dans deux graphiques différents se trouvant dans la même fenêtre.

   ATTENTION !!! fichier.tell( ) indique sur quel bit se trouve le curseur de lecture.
F4py34

Voici le résultat :
sosoftware.free


♣ Exercice F5: 

-Rappel de l'énoncé : Cet exercice est un simple exercice de manipulation de fichiers pour comprendre la différence entre les modes append 'a', write 'w' et read 'r' d'ouverture de fichier.
F5py34- Créez le fichier "exerciceF5.txt" en l'ouvrant en mode écriture, écrivez un caractère dedans, puis refermez-le.


- Ouvrez-le en mode lecture, affichez ce que vous lisez dedans, puis refermez-le.


- Ouvrez-le en mode écriture, écrivez "Hello " dedans, puis refermez-le.


- Ouvrez-le en mode lecture, affichez ce que vous lisez dedans, puis refermez-le. Que remarquez-vous ?


- Ouvrez-le en mode ajout, écrivez "World !" dedans, puis refermez-le.


- Ouvrez le en mode écriture, affichez ce que vous lisez dedans, puis refermez-le. Que remarquez-vous ?


Remarque n°1 : Le mode 'w' écrit par dessus ce qui existe déjà dans le fichier, alors que le mode 'a' écrit à la fin du fichier par défaut.
Remarque n°2 : Par défaut le mode d'ouverture est 'r'. Ainsi, pour ouvrir un fichier en mode écriture, la ligne suivante suffit :
fichier = open("exerciceF5.txt")