1. Objectif de ce TP
Vu l'importance de la notion de fichiers en programmation, notamment en Python, nous avons décidé de proposer des travaux pratiques complets à ce sujet. Ce premier TP a pour objectif:
- Explorer et manipuler les méthodes associées au fichiers en Python
- Mettre en pratique les opérations essentielles : création, lecture, écriture, modification et suppression de fichiers en Python.
Fichier requis :
Pour ce TP, utilisez un fichier nommé data.txt. Si ce fichier n'est pas encore présent, créez-le à l'aide de Python.
2. Instructions
Réalisez un script Python distinct pour répondre à chaque question ou regroupez toutes les solutions dans un unique fichier en utilisant des fonctions séparées.
3. Questions
Question 1 : Création et écriture de fichiers
Rédigez un script Python permettant de créer un fichier nommé data.txt et d'y insérer les lignes suivantes :
1 2 3 |
Bonjour le monde Python est génial Manipulation de fichiers |
Question2. Lecture du contenu d’un fichier
Lisez et affichez le contenu complet du fichier data.txt dans la console.
Question3. Lecture ligne par ligne
Lisez le fichier data.txt ligne par ligne et affichez chaque ligne avec son numéro de ligne (exemple : Ligne 1 : Bonjour le monde).
Question4. Ajouter du contenu à un fichier
Ajoutez les deux lignes suivantes à la fin du fichier data.txt sans écraser le contenu existant :
1 2 |
Programmation en Python Travaux pratiques sur les fichiers |
Question5. Compter le nombre de lignes et de mots
Calculez et affichez :
- Le nombre total de lignes dans le fichier.
- Le nombre total de mots dans le fichier.
Question6. Recherche dans un fichier
Demandez à l’utilisateur un mot à rechercher. Indiquez si ce mot existe dans le fichier et, si oui, affichez la ou les lignes où il apparaît.
Question7. Modification d’une ligne spécifique
Remplacez la ligne Python est génial par Python est puissant dans le fichier data.txt.
Question8. Suppression d’une ligne spécifique
Supprimez la ligne contenant le texte Manipulation de fichiers du fichier data.txt.
Question9. Copie de fichier
Créez un nouveau fichier nommé copy_data.txt qui est une copie exacte du fichier data.txt.
Question10. Suppression de fichier
Demandez à l’utilisateur de confirmer avant de supprimer le fichier copy_data.txt. S’il confirme, supprimez le fichier.
Solution
1. Création et écriture de fichiers
1 2 3 4 5 |
f = open("data.txt", "w") f.write("Bonjour le monde\n") f.write("Python est génial\n") f.write("Manipulation de fichiers\n") f.close() |
2. Lecture du contenu d’un fichier
1 2 3 4 |
f = open("data.txt", "r") content = f.read() print(content) f.close() |
3. Lecture ligne par ligne
1 2 3 4 5 6 |
f = open("data.txt", "r") line_number = 1 for line in f: print(f"Ligne {line_number}: {line.strip()}") line_number += 1 f.close() |
4. Ajouter du contenu à un fichier
1 2 3 4 |
f = open("data.txt", "a") f.write("Programmation en Python\n") f.write("Travaux pratiques sur les fichiers\n") f.close() |
5. Compter le nombre de lignes et de mots
1 2 3 4 5 6 7 |
f = open("data.txt", "r") lines = f.readlines() num_lines = len(lines) num_words = sum(len(line.split()) for line in lines) print(f"Nombre de lignes : {num_lines}") print(f"Nombre de mots : {num_words}") f.close() |
6. Recherche dans un fichier
1 2 3 4 5 6 7 8 9 10 11 |
word = input("Entrez le mot à rechercher : ") f = open("data.txt", "r") lines = f.readlines() found = False for i, line in enumerate(lines, start=1): if word in line: print(f"Mot trouvé à la ligne {i}: {line.strip()}") found = True if not found: print("Mot non trouvé dans le fichier.") f.close() |
7. Modification d’une ligne spécifique
1 2 3 4 5 6 7 8 9 10 11 |
f = open("data.txt", "r") lines = f.readlines() f.close() f = open("data.txt", "w") for line in lines: if line.strip() == "Python est génial": f.write("Python est puissant\n") else: f.write(line) f.close() |
8. Suppression d’une ligne spécifique
1 2 3 4 5 6 7 8 9 |
f = open("data.txt", "r") lines = f.readlines() f.close() f = open("data.txt", "w") for line in lines: if line.strip() != "Manipulation de fichiers": f.write(line) f.close() |
9. Copie de fichier
1 2 3 4 5 6 7 |
f = open("data.txt", "r") content = f.read() f.close() f_copy = open("copy_data.txt", "w") f_copy.write(content) f_copy.close() |
10. Suppression de fichier
1 2 3 4 5 6 7 8 9 10 11 12 |
import os file_name = "copy_data.txt" if os.path.exists(file_name): confirmation = input(f"Êtes-vous sûr de vouloir supprimer {file_name} ? (o/n) : ").lower() if confirmation == 'o': os.remove(file_name) print(f"Fichier {file_name} supprimé avec succès.") else: print("Suppression annulée.") else: print(f"Le fichier {file_name} n'existe pas.") |
Exécution complète dans un seul script Python
Voici comment tester toutes les étapes dans un seul script Python:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 |
# 1. Création et écriture f = open("data.txt", "w") f.write("Bonjour le monde\n") f.write("Python est génial\n") f.write("Manipulation de fichiers\n") f.close() # 2. Lecture du contenu f = open("data.txt", "r") print("Contenu du fichier après création :") print(f.read()) f.close() # 3. Lecture ligne par ligne f = open("data.txt", "r") print("\nLecture ligne par ligne :") line_number = 1 for line in f: print(f"Ligne {line_number}: {line.strip()}") line_number += 1 f.close() # 4. Ajout de contenu f = open("data.txt", "a") f.write("Programmation en Python\n") f.write("Travaux pratiques sur les fichiers\n") f.close() # 5. Lecture après ajout f = open("data.txt", "r") print("\nContenu du fichier après ajout :") print(f.read()) f.close() # 6. Compter lignes et mots f = open("data.txt", "r") lines = f.readlines() f.close() num_lines = len(lines) num_words = sum(len(line.split()) for line in lines) print(f"\nNombre de lignes : {num_lines}") print(f"Nombre de mots : {num_words}") # 7. Recherche word = "Python" f = open("data.txt", "r") lines = f.readlines() f.close() found = False for i, line in enumerate(lines, start=1): if word in line: print(f"Mot trouvé à la ligne {i}: {line.strip()}") found = True if not found: print("Mot non trouvé dans le fichier.") # 8. Modification d’une ligne f = open("data.txt", "r") lines = f.readlines() f.close() f = open("data.txt", "w") for line in lines: if line.strip() == "Python est génial": f.write("Python est puissant\n") else: f.write(line) f.close() # 9. Suppression d’une ligne f = open("data.txt", "r") lines = f.readlines() f.close() f = open("data.txt", "w") for line in lines: if line.strip() != "Manipulation de fichiers": f.write(line) f.close() # 10. Copie du fichier f = open("data.txt", "r") content = f.read() f.close() f_copy = open("copy_data.txt", "w") f_copy.write(content) f_copy.close() # 11. Suppression du fichier copié import os file_name = "copy_data.txt" if os.path.exists(file_name): confirmation = input(f"Êtes-vous sûr de vouloir supprimer {file_name} ? (o/n) : ").lower() if confirmation == 'o': os.remove(file_name) print(f"Fichier {file_name} supprimé avec succès.") else: print("Suppression annulée.") else: print(f"Le fichier {file_name} n'existe pas.") |
Younes Derfoufi CRMEF OUJDA