Comment manipuler des fichiers de texte brut dans Python 3

introduction

Python est un excellent outil de traitement de données. Il est probable que tout programme que vous écrivez impliquera la lecture, l'écriture ou la manipulation de données. Pour cette raison, il est particulièrement utile de savoir comment gérer différents formats de fichiers, qui stockent différents types de données.

Par exemple, considérons un programme Python qui vérifie unlist d'utilisateurs pour le contrôle d'accès. Votre liste d'utilisateurs sera probablement stockée et sauvegardée dans un fichier texte. Peut-être que vous ne travaillez pas avec du texte, mais que vous avez plutôt un programme d'analyse financière. Pour effectuer des calculs, vous devrez probablement saisir ces chiffres à partir d'une feuille de calcul enregistrée. Quelle que soit votre application, il est presque garanti que la saisie ou la sortie de données sera impliquée.

Ce tutoriel décrira brièvement certains types de formats que Python est capable de gérer. Après une brève introduction aux formats de fichier, nous verrons comment ouvrir, lire et écrire un fichier texte dans Python 3.

Lorsque vous aurez terminé ce didacticiel, vous pourrez gérer n’importe quel fichier texte en Python.

Conditions préalables

Pour ce tutoriel, vous devez avoir installé Python 3 ainsi qu’un environnement de programmation local configuré sur votre ordinateur. Si ce n'est pas le cas, vous pouvez le configurer en suivant le guide d'installation et de configuration approprié à votre système d'exploitation:

Contexte

Python est extrêmement accommodant et peut, avec une relative facilité, gérer un certain nombre de formats de fichiers différents, notamment les suivants:

Type de fichier La description

txt

Le fichier de texte brut stocke les données qui ne représentent que des caractères (oustrings) et exclut toutes les métadonnées structurées

CSV

Le fichier de valeurs séparées par des virgules utilise des virgules (ou d'autres délimiteurs) pour structurer les données stockées, ce qui permet d'enregistrer les données dans un format de tableau

HTML

Le fichier HyperText Markup Language stocke des données structurées et est couramment utilisé avec la plupart des sites Web

JSON

La notation d'objets JavaScript est un format simple et efficace, ce qui en fait l'un des formats les plus couramment utilisés pour stocker et transférer des données

Ce tutoriel se concentrera sur le format de fichiertxt.

[[step-1 -—- creating-a-text-file]] == Étape 1 - Création d'un fichier texte

Avant de pouvoir commencer à travailler en Python, nous devons nous assurer de disposer d’un fichier. Pour ce faire, nous allons ouvrir un éditeur de texte et créer un nouveau fichier txt, appelons-ledays.txt.

Dans le nouveau fichier, entrez quelques lignes de texte. Dans cet exemple, listons les jours de la semaine:

days.txt

Monday
Tuesday
Wednesday
Thursday
Friday
Saturday
Sunday

Ensuite, sauvegardez votre fichier et assurez-vous de savoir où vous l'avez mis. Dans notre exemple, notre utilisateursammy, a enregistré le fichier ici:/users/sammy/days.txt. Cela sera très important dans les étapes suivantes, où nous ouvrirons le fichier en Python.

Maintenant que nous avons un fichier txt à traiter, nous pouvons commencer notre code!

[[step-2 -—- opening-a-file]] == Étape 2 - Ouverture d'un fichier

Avant de pouvoir écrire notre programme, nous devons créer un fichier de programmation Python, donc créez le fichierfiles.py avec votre éditeur de texte. Pour faciliter les choses, enregistrez-le dans le même répertoire que notre fichierdays.txt:/users/sammy/.

Pour ouvrir un fichier en Python, nous avons d'abord besoin d'un moyen d'associer le fichier sur le disque avec unvariable en Python. Ce processus est appeléopening un fichier. Nous commençons par dire à Python où se trouve le fichier. L'emplacement de votre fichier est souvent appelé fichierpath. Pour que Python ouvre votre fichier, il faut le chemin. Le chemin de notre fichierdays.txt est:/users/sammy/days.txt. En Python, nous allons créer une variable chaîne pour stocker ces informations. Dans notre scriptfiles.py, nous allons créer la variablepath et définir la variable sur le chemin days.txt.

files.py

path = '/users/sammy/days.txt'

Nous utiliserons ensuite la fonctionopen() de Python pour ouvrir notre fichierdays.txt. La fonctionopen() requiert comme premier argument le chemin du fichier. La fonction permet également de nombreux autres paramètres. Cependant, le paramètre optionnelmode est le plus important. Mode est une chaîne facultative qui spécifie le mode dans lequel le fichier est ouvert. Le mode que vous choisirez dépendra de ce que vous souhaitez faire avec le fichier. Voici certaines de nos options de mode:

  • 'r': à utiliser pour la lecture

  • 'w': utiliser pour l'écriture

  • 'x': à utiliser pour créer et écrire dans un nouveau fichier

  • 'a': à utiliser pour ajouter à un fichier

  • 'r+': à utiliser pour lire et écrire dans le même fichier

Dans cet exemple, nous voulons uniquement lire à partir du fichier, nous allons donc utiliser le mode'r'. Nous utiliserons la fonctionopen() pour ouvrir le fichierdays.txt et l'assigner à la variabledays_file.

files.py

days_file = open(path,'r')

Après avoir ouvert le fichier, nous pourrons le lire, ce que nous ferons à l’étape suivante.

[[step-3 -—- reading-a-file]] == Étape 3 - Lecture d'un fichier

Depuis que notre fichier a été ouvert, nous pouvons maintenant le manipuler (c.-à-d. lire à partir de celui-ci) à travers la variable que nous lui avons assignée. Python fournit trois opérations connexes pour la lecture d'informations à partir d'un fichier. Nous montrerons comment utiliser les trois opérations à titre d’exemples que vous pouvez essayer pour comprendre leur fonctionnement.

La première opération<file>.read() renvoie l'intégralité du contenu du fichier sous forme d'une seule chaîne.

days_file.read()
Output'Monday\nTuesday\nWednesday\nThursday\nFriday\nSaturday\nSunday\n'

La deuxième opération<file>.readline() renvoie la ligne suivante du fichier, renvoyant le texte jusqu'au caractère de nouvelle ligne suivant inclus. Plus simplement, cette opération lira un fichier ligne par ligne.

days_file.readline()
Output'Monday\n'

Par conséquent, une fois que vous avez lu une ligne avec l'opération readline, celle-ci passe à la ligne suivante. Ainsi, si vous appelez à nouveau cette opération, elle renverra la ligne suivante du fichier, comme indiqué.

days_file.readline()
Output'Tuesday\n'

La dernière opération,<file>.readlines() renvoie une liste des lignes du fichier, où chaque élément de la liste représente une seule ligne.

days_file.readlines()
Output['Monday\n', 'Tuesday\n', 'Wednesday\n', 'Thursday\n', 'Friday\n', 'Saturday\n', 'Sunday\n']

Il est important de garder à l’esprit lorsque vous lisez des fichiers: une fois qu’un fichier a été lu à l’aide d’une des opérations de lecture, il ne peut plus être lu. Par exemple, si vous exécutez d'aborddays_file.read() suivi dedays_file.readlines(), la deuxième opération renverra une chaîne vide. Par conséquent, chaque fois que vous souhaitez lire un fichier, vous devez d'abord ouvrir une nouvelle variable de fichier. Maintenant que nous avons lu un fichier, apprenons à écrire dans un nouveau fichier.

[[step-4 -—- writing-a-file]] == Étape 4 - Ecrire un fichier

Dans cette étape, nous allons écrire un nouveau fichier qui comprend le titreDays of the Week suivi des jours de la semaine. Commençons par créer notre variabletitle.

files.py

title = 'Days of the Week\n'

Nous devons également stocker les jours de la semaine dans une variable de chaîne, que nous appelleronsdays. Pour faciliter le suivi, nous incluons le code des étapes ci-dessus. Nous ouvrons le fichier en mode lecture, lisons le fichier et stockons la sortie renvoyée par l'opération de lecture dans notre nouvelle variabledays.

files.py

path = '/users/sammy/days.txt'
days_file = open(path,'r')
days = days_file.read()

Maintenant que nous avons des variables pour le titre et les jours de la semaine, nous pouvons commencer à écrire dans notre nouveau fichier. Tout d'abord, nous devons spécifier l'emplacement du fichier. Encore une fois, nous utiliserons le répertoire/users/sammy/. Nous devrons spécifier le nouveau fichier que nous souhaitons créer. Donc, notre chemin sera en fait/users/sammy/new_days.txt. Nous fournissons nos informations de localisation dans la variablenew_path. Nous ouvrons ensuite notre nouveau fichier en mode écriture, en utilisant la fonctionopen() avec le mode'w' spécifié.

files.py

new_path = '/users/sammy/new_days.txt'
new_days = open(new_path,'w')

Important à noter, si new_days.txt existait déjà avant l'ouverture du fichier, son ancien contenu aurait été détruit, donc soyez prudent lorsque vous utilisez le mode'w'.

Une fois notre nouveau fichier ouvert, nous pouvons mettre des données dans le fichier, en utilisant l'opération d'écriture,<file>.write(). L'opération d'écriture prend un seul paramètre, qui doit être une chaîne, et écrit cette chaîne dans le fichier. Si vous souhaitez commencer une nouvelle ligne dans le fichier, vous devez explicitement fournir le caractère de nouvelle ligne. Tout d'abord, nous écrivons le titre du fichier suivi des jours de la semaine. Ajoutons également quelques déclarations imprimées de ce que nous écrivons, ce qui est souvent une bonne pratique pour suivre les progrès de vos scripts.

files.py

new_days.write(title)
print(title)

new_days.write(days)
print(days)

Enfin, chaque fois que nous en avons terminé avec un fichier, nous devons nous assurer de le fermer. Nous montrons cela dans notre dernière étape.

[[step-5 -—- closing-a-file]] == Étape 5 - Fermeture d'un fichier

La fermeture d'un fichier permet de s'assurer que la connexion entre le fichier sur le disque et la variable de fichier est terminée. La fermeture des fichiers garantit également que les autres programmes peuvent y accéder et protège vos données. Alors, assurez-vous toujours de fermer vos fichiers. Maintenant, fermons tous nos fichiers en utilisant la fonction<file>.close().

files.py

days_file.close()
new_days.close()

Nous avons maintenant fini de traiter les fichiers en Python et nous pouvons passer en revue notre code.

[[step-6 -—- checking-our-code]] == Étape 6 - Vérification de notre code

Avant de lancer notre code, assurez-vous que tout va bien. Le produit final devrait ressembler à ceci:

files.py

path = '/users/sammy/days.txt'
days_file = open(path,'r')
days = days_file.read()


new_path = '/users/sammy/new_days.txt'
new_days = open(new_path,'w')

title = 'Days of the Week\n'
new_days.write(title)
print(title)

new_days.write(days)
print(days)

days_file.close()
new_days.close()

Après avoir enregistré votre code, ouvrez le terminal et exécutez votre script Python, comme suit:

python files.py

Notre sortie devrait ressembler à ceci:

OutputDays of the Week

Monday
Tuesday
Wednesday
Thursday
Friday
Saturday
Sunday

Maintenant, revérifions que notre code fonctionne parfaitement en ouvrant notre nouveau fichier (new_days.txt). Si tout se passe bien, lorsque nous ouvrirons notre nouveau fichier, il devrait ressembler à ceci:

new_days.txt

Days of the Week
Monday
Tuesday
Wednesday
Thursday
Friday
Saturday
Sunday

Votre fichier sera identique ou similaire - vous avez terminé ce didacticiel avec succès!

Conclusion

Dans ce didacticiel, nous avons expliqué comment manipuler et manipuler des fichiers de texte brut dans Python 3. Vous pouvez maintenant ouvrir, lire, écrire et fermer des fichiers en Python et continuer à utiliser vos propres données en Python.