Gestion des fichiers en Python

Si vous regardez l'arrière-plan de votre bureau, que remarquez-vous? Les fichiers se répandent partout, non? Je sais que nous avons régulièrement la mauvaise habitude d'avoir un bureau encombré, mais le fait est que nous semblons traiter beaucoup de dossiers.

En parlant de Python, il est certainement possible de travailler avec des fichiers en utilisant Python, et voici ce que je vais vous montrer dans ce tutoriel..

Ouvrir un fichier

Le premier processus naturel que nous devons effectuer pour effectuer une opération sur un fichier consiste à ouvrir il. Allez-y et téléchargez Text.txt, le fichier que nous utiliserons pour mener nos expériences..

Pour ouvrir le fichier en utilisant Python, nous allons utiliser la fonction open (). Comme mentionné dans la documentation:

open () retourne un objet fichier et est le plus souvent utilisé avec deux arguments: open (nom du fichier, mode)

Avant de prendre un exemple, comme mentionné ci-dessus, le ouvrir() fonction prendra deux arguments: nom de fichier et mode. Cette façon de définir les arguments est en fait similaire à stdio's (i.e. C) fopen ()Nom de fichier est simplement le nom du fichier que vous voulez ouvrir. Vous pouvez également indiquer le chemin d'accès à ce fichier s'il ne se trouve pas dans votre répertoire actuel. Et mode est une valeur de chaîne qui indique comment le fichier va être ouvert. Des exemples de différents modes sont présentés dans le tableau suivant:

Mode La description
r Ouvrir le fichier texte pour la lecture. Le flux est positionné au début du fichier
r+ Ouvert à la lecture et à l'écriture. Le flux est positionné au début du fichier
w Tronquer à zéro longueur ou créer un fichier texte pour l'écriture. Le flux est positionné au début du fichier
w+ Ouvert à la lecture et à l'écriture. Le fichier est créé s'il n'existe pas, sinon il est tronqué. Le flux est positionné au début du fichier
une Ouvert à l'écriture. Le fichier est créé s'il n'existe pas. Le flux est positionné à la fin du fichier. Les écritures ultérieures dans le fichier se termineront toujours à la fin du fichier.
une+ Ouvert à la lecture et à l'écriture. Le fichier est créé s'il n'existe pas. Le flux est positionné à la fin du fichier. Les écritures ultérieures dans le fichier se termineront toujours à la fin du fichier.

Vous pouvez également voir d'autres modes dans la documentation Python.

Allons-y et ouvrons le fichier Text.txt. Ceci peut être fait simplement en une ligne comme suit:

text_file = open ('Text.txt')

Comme vous pouvez le voir ici, nous n'avons pas précisé le mode. Pour connaître le mode par défaut utilisé avec ouvrir(), type print text_file, Dans ce cas, vous obtiendrez ce qui suit:


Donc, comme vous pouvez le constater, le mode par défaut est r. À ce stade, vous ne remarquerez peut-être rien, mais le fichier a été ouvert à cette étape..

Lecture d'un fichier

Le fichier est comme une boîte secrète. Nous l'avons ouvert à l'étape précédente et nous voulons maintenant voir ce qu'il y a à l'intérieur. La lecture d’un fichier est simple en Python et peut être réalisée à l’aide de la lis() méthode, comme suit:

text_file.read ()

Afin de voir la sortie de l'instruction précédente, tapez print text_file.read (). Dans ce cas, le secret (contenu) sera révélé!

J'apprécie d'apprendre le traitement des fichiers en Python

Allez-y, tapez print text_file.read () encore une fois et que remarquez-vous? Vous pouvez voir qu'un vide chaîne a été sortie. En effet, vous avez déjà lu l’ensemble du fichier, contrairement à une ligne à la fois, c’est-à-dire. readline ().

Écrire dans un fichier

Peut-être aimeriez-vous ajouter (écrire) une autre phrase ou un autre paragraphe au fichier que nous avons déjà lu. Supposons que vous vouliez ajouter la phrase suivante: et je cherche plus. Cela peut être fait en Python en utilisant le écrire() méthode, comme suit:

text_file.write ('et je cherche plus')

Oups, nous avons une erreur ici:

Traceback (appel le plus récent en dernier): fichier "test.py", ligne 2, dans  text_file.write ('et je cherche plus') IOError: Le fichier n'est pas ouvert pour l'écriture

Avez-vous compris le point? Rappelez-vous quand nous avons ouvert le fichier dans la première section comme suit: open ('Text.txt')? Puisque nous n'avons pas spécifié de mode dans cet exemple, le mode (par défaut) a été défini sur r. Cela nous permettra seulement de lis le fichier, et dans cet exemple, nous essayons de écrire au fichier. Alors, rouvrons le fichier, mais avec l'écriture w mode:

text_file = open ('Text.txt', 'w')

Essayez maintenant de réécrire la phrase en utilisant le code ci-dessus. Qu'est-ce que vous obtenez? Let's ouvrir() et impression lis() le fichier comme indiqué dans les deux premières sections pour voir ce qu’il contient:

text_file = open ('Text.txt', 'r') print text_file.read ()

La sortie de ce script est:

et je cherche plus

Vous vous attendiez à voir cette nouvelle phrase accompagnée de la phrase originale J'apprécie d'apprendre le traitement des fichiers en Python, n'étais-tu pas? Alors, où a-t-il disparu? le w Le mode semble écraser le contenu du fichier sur lequel il écrit. Si vous souhaitez conserver le texte original du document, vous pouvez utiliser le une (annexe) mode:

text_file = open ('Text.txt', 'a') text_file.write ('et je cherche plus')

Dans ce cas, vous devriez obtenir le contenu attendu dans Text.txt:

J'apprécie d'apprendre le "traitement des fichiers" en Python et j'en cherche d'autres

Rassemblons tout ce que nous avons appris jusqu'à présent:

avec open ('Text.txt', 'r +') en tant que fichier_fichier: print 'Le contenu du fichier AVANT l’écriture du contenu:' print contenu du fichier APRÈS avoir écrit le contenu: 'text_file.seek (0) print text_file.read ()

Nous avons de nouvelles choses ici. Permettez-moi de les clarifier rapidement. avec comme nous permet d'ouvrir le fichier, de le traiter et de nous assurer qu'il est fermé. chercher(), d’autre part, nous permet de déplacer le pointeur (curseur) vers une autre partie du fichier. chercher (0), par exemple, cela signifie que le point de référence sera le début du fichier.

Allez-y et lancez le script, et voyez ce que vous obtenez en sortie.

Fermer un fichier

Avoir l'habitude de fermer un fichier après lecture ou écriture vous permettra de libérer de la mémoire. Oui, Python fermera automatiquement les fichiers à la fin du script, mais si vous ne le faites pas au préalable, tous les fichiers ouverts occuperont un espace disque suffisant pour Python. La fermeture d’un fichier s’effectue simplement à l’aide des touches Fermer() méthode.

Prenons cet exemple:

text_file = open ('Text.txt', 'a +') print text_file.read () text_file.write ('et je cherche plus')

Que se passera-t-il si nous fermons le fichier après lis()? C'est, text_file.close (). Python donnera l'exception suivante:

Traceback (appel le plus récent en dernier): fichier "test.py", ligne 4, dans  text_file.write ('et je cherche plus') ValueError: opération d'E / S sur un fichier fermé

Ainsi, nous concluons que nous ne peux pas lire ou écrire dans un fichier fermé.

Conclusion

Voilà pour ce tutoriel. Nous avons vu à quel point Python permet de travailler avec des fichiers grâce aux opérations de base que nous avons démontrées. 

Quelles autres opérations effectuez-vous habituellement sur des fichiers en utilisant Python??