Comment utiliser « avec » en Python pour ouvrir des fichiers (y compris des exemples)
Vous pouvez utiliser la syntaxe suivante pour ouvrir un fichier en Python, en faire quelque chose, puis fermer le fichier :
file = open('my_data.csv') df = file.read() print(df) file.close()
Le problème avec cette approche est qu’il est très facile d’oublier de fermer le fichier.
Une meilleure approche consiste à utiliser with open , qui utilise la syntaxe de base suivante :
with open('my_data.csv') as file: df = file.read() print(df)
En utilisant cette approche, le fichier avec lequel vous travaillez est automatiquement fermé afin que vous n’ayez pas à vous rappeler d’utiliser file.close() .
Les exemples suivants montrent comment utiliser with open dans différents scénarios.
Exemple 1 : utiliser l’instruction With pour lire le fichier
Le code suivant montre comment utiliser l’instruction « with » pour lire un fichier en Python et imprimer le contenu du fichier :
with open('my_data.csv') as file: df = file.read() print(df) ,points,assists,rebounds 0,11,5,6 1,17,7,8 2,16,7,8 3,18,9,10 4,22,12,14 5,25,9,12 6,26,9,12 7,24,4,10 8,29,8,11
Le contenu du fichier est imprimé et le fichier est automatiquement fermé sans que nous tapions file.close() .
Exemple 2 : utiliser l’instruction With pour écrire un fichier
Le code suivant montre comment utiliser l’instruction « with » pour écrire du texte dans un fichier :
with open('data_out.csv', 'w') as file: file.write('Some text to write to CSV file')
Notez que le ‘ w ‘ dans l’instruction open() indique à Python d’utiliser le mode ‘écriture’ avec le fichier par opposition au mode lecture.
Exemple 3 : utiliser l’instruction With pour lire et écrire des fichiers
Nous pouvons également ouvrir plusieurs fichiers à la fois dans une seule instruction « with ».
Le code suivant montre comment utiliser l’instruction « with » pour ouvrir deux fichiers, lire le contenu d’un fichier, puis écrire le contenu du premier fichier dans le deuxième fichier :
with open('my_data.csv', 'r') as infile, open('data_out.csv', 'w') as outfile: for line in infile: outfile.write(line)
Si nous naviguons jusqu’à l’emplacement où nous avons écrit « data_out.csv », nous pouvons alors afficher le contenu du fichier :
Notez que nous pouvons utiliser la fonction open() pour ouvrir autant de fichiers que nous le souhaitons dans une seule instruction « with ».
Ressources additionnelles
Les didacticiels suivants expliquent comment effectuer d’autres opérations courantes en Python :
Comment lire des fichiers CSV avec Pandas
Comment lire des fichiers Excel avec Pandas
Comment lire des fichiers texte avec Pandas