Ouverture de fichiers
Pour travailler avec des fichiers en Python, on utilise la fonction intégrée open(). La syntaxe de base :
file = open('filename.txt', 'mode')Principaux modes d'ouverture :
'r'— lecture (read). Le fichier doit exister'w'— enregistrement (write). Crée un nouveau fichier ou remplace un fichier existant'a'— ajout (append). Ajoute des données à la fin du fichier'r+'— lecture et écriture'b'— mode binaire (par exemple,'rb'ou'wb')
Lecture des fichiers
Lecture de tout le contenu :
with open('example.txt', 'r', encoding='utf-8') as file:
content = file.read()
print(content)Lecture ligne par ligne :
with open('example.txt', 'r', encoding='utf-8') as file:
for line in file:
print(line.strip()) # strip() supprime les caractères de saut de ligneLecture de toutes les lignes de la liste :
with open('example.txt', 'r', encoding='utf-8') as file:
lines = file.readlines()
print(lines)Enregistrement dans des fichiers
Enregistrement du texte (réécriture du fichier) :
with open('output.txt', 'w', encoding='utf-8') as file:
file.write('Hello world!\n')
file.write('This is the second line.')Ajout de texte à la fin du fichier :
with open('output.txt', 'a', encoding='utf-8') as file:
file.write('\nAdditional line')Enregistrement de la liste des lignes :
lines = ['First line\n', 'Second line\n', 'Third line\n']
with open('output.txt', 'w', encoding='utf-8') as file:
file.writelines(lines)Construction avec
L'utilisation de with est une bonne pratique lors de l'utilisation de fichiers. Elle ferme automatiquement le fichier après l'exécution du bloc de code, même si une erreur s'est produite.
Sans with (non recommandé) :
file = open('example.txt', 'r')
content = file.read()
file.close() # N'oubliez pas de fermer le fichier !Avec (recommandé) :
with open('example.txt', 'r') as file:
content = file.read()
# Le fichier est automatiquement fermé après la sortie du blocGestion des chemins d'accès aux fichiers
Pour faciliter le travail avec les chemins, utilisez le module pathlib :
from pathlib import Path
# Création d'un parcours
file_path = Path('folder') / 'subfolder' / 'file.txt'
# Vérification de l'existence
if file_path.exists():
print('File exists')
# Lecture du fichier
content = file_path.read_text(encoding='utf-8')
# Enregistrement dans un fichier
file_path.write_text('New content', encoding='utf-8')
Traitement des erreurs
Lors de l'utilisation de fichiers, il est important de traiter les erreurs possibles :
try:
with open('nonexistent.txt', 'r', encoding='utf-8') as file:
content = file.read()
except FileNotFoundError:
print('File not found')
except PermissionError:
print('No access rights to the file')
except Exception as e:
print(f'An error occurred: {e}')Travail avec des fichiers CSV
Python a un module intégré csv pour travailler avec des fichiers CSV :
import csv
# Lecture CSV
with open('data.csv', 'r', encoding='utf-8') as file:
reader = csv.reader(file)
for row in reader:
print(row)
# Enregistrement CSV
data = [
['Name', 'Age', 'City'],
['Alexey', '25', 'Moscow'],
['Maria', '30', 'St. Petersburg']
]
with open('output.csv', 'w', encoding='utf-8', newline='') as file:
writer = csv.writer(file)
writer.writerows(data)Travail avec les fichiers JSON
Pour travailler avec JSON, le module json est utilisé :
import json
# Lecture JSON
with open('data.json', 'r', encoding='utf-8') as file:
data = json.load(file)
print(data)
# Enregistrement JSON
data = {
'name': 'Ivan',
'age': 28,
'skills': ['Python', 'JavaScript']
}
with open('output.json', 'w', encoding='utf-8') as file:
json.dump(data, file, ensure_ascii=False, indent=4)Exemples pratiques
Calcul du nombre de lignes dans le fichier :
with open('example.txt', 'r', encoding='utf-8') as file:
line_count = sum(1 for line in file)
print(f'Number of lines: {line_count}')Recherche de mots dans un fichier :
search_word = 'Python'
with open('example.txt', 'r', encoding='utf-8') as file:
for line_number, line in enumerate(file, 1):
if search_word in line:
print(f'Found in line {line_number}: {line.strip()}')Copie du fichier :
with open('source.txt', 'r', encoding='utf-8') as source:
with open('destination.txt', 'w', encoding='utf-8') as destination:
destination.write(source.read())Conseils utiles
Indiquez toujours l'encodage. Utilisez encoding='utf-8' pour travailler correctement avec le texte russe.
Utilisez with pour fermer automatiquement les fichiers. Cela évite les fuites de ressources et les pertes de données.
Traitez les exceptions. Les fichiers peuvent ne pas exister, être verrouillés ou vous pouvez ne pas avoir les droits d'accès.
Vérifiez l'existence des fichiers. Avant de lire, assurez-vous que le fichier existe en utilisant Path.exists() ou le traitement des exceptions.
Soyez prudent avec les fichiers volumineux. La méthode read() charge le fichier entier en mémoire. Pour les fichiers volumineux, il est préférable de lire ligne par ligne.
Conclusion
Travailler avec des fichiers en Python est simple et intuitif. Principes de base : utilisez la construction with, n'oubliez pas la gestion des erreurs et choisissez le bon mode d'ouverture du fichier. Avec ces connaissances, vous êtes prêt à travailler efficacement avec des fichiers dans vos projets !
Code est une communauté amicale de développeurs où chacun peut apprendre à programmer, partager son expérience et recevoir le soutien de personnes partageant les mêmes idées. Nous avons créé un espace où les débutants se sentent à l'aise pour poser des questions, et les programmeurs expérimentés sont heureux de partager leurs connaissances et d'aider à se développer.
Rejoignez Kodik - ici, le code est plus facile à écrire, et la formation se déroule dans une atmosphère d'entraide et d'inspiration !
