Python >> Tutoriel Python >  >> Python

Comment lire un fichier ligne par ligne et le stocker dans une liste ?

Résumé : Utilisez l'une des méthodes suivantes pour lire un fichier ligne par ligne et le stocker dans une liste :

  • Utilisation du readlines Et strip Méthode
  • Utiliser rstrip()
  • Utilisez le for Boucle et strip() méthode
  • Utilisez splitlines()
  • Utilisez le pathlib Bibliothèque Et Le splitlines() Méthode
  • Utiliser la compréhension de liste

Problème : Comment lire chaque ligne d'un fichier en Python et stocker chaque ligne en tant qu'élément dans une liste ?

Dans cet article, nous allons discuter de la façon dont nous pouvons –

  • Lire un fichier ligne par ligne.
  • Stockez-le ensuite dans une liste.

Jetons un coup d'œil à un exemple donné ci-dessous auquel nous nous référerons lors de la discussion des solutions.

Fichier donné :

Sortie :

['Jeff Bezos', 'Bill Gates', 'Mark Zuckerberg', 'Bernard Arnault & family', 'Mukesh Ambani', 'Steve Ballmer', 'Warren Buffett', 'Larry Page', 'Elon Musk', 'Sergey Brin']

Dans l'exemple ci-dessus, nous avons un fichier nommé test.txt qui stocke les noms de quelques personnalités bien connues ?. Notre but est de lire chaque ligne (qui dans ce cas contient des noms) une par une et de les stocker dans une liste.

Remarque : Le fichier pris en considération est le même fichier que celui mentionné dans l'exemple ci-dessus. La solution dérivée est donc conforme au même fichier. J'ai joint le fichier ci-dessous ? Pour ta convenance. N'hésitez pas à le télécharger au cas où vous voudriez vous entraîner.

testTélécharger

Sans plus tarder, plongeons-nous dans les solutions.

Méthode 1 :Utilisation des méthodes readlines et strip

  • readlines() est une méthode intégrée à Python utilisée pour lire un fichier ligne par ligne, puis stocker chaque ligne dans une liste.
  • string.strip()  :Supprime les espaces blancs de début et de fin, y compris les caractères de nouvelle ligne '\n' et les caractères tabulaires '\t'.

Nous allons utiliser le readlines() méthode pour lire le fichier ligne par ligne tandis que le strip() méthode est utilisée pour se débarrasser du caractère de nouvelle ligne '\n' tout en stockant les éléments dans la liste. Jetons un coup d'œil au programme suivant pour visualiser comment nous pouvons résoudre notre problème en utilisant les méthodes mentionnées ci-dessus.

with open('test.txt') as f:
    content = f.readlines()
# you may also want to remove whitespace characters like `\n` at the end of each line
li = [x.strip() for x in content]
print(li)

Sortie :

['Jeff Bezos', 'Bill Gates', 'Mark Zuckerberg', 'Bernard Arnault & family', 'Mukesh Ambani', 'Steve Ballmer', 'Warren Buffett', 'Larry Page', 'Elon Musk', 'Sergey Brin']

Méthode 2 :Utilisation de line.rstrip()

string.rstrip() est une fonction intégrée à Python qui supprime tous les espaces à droite de la chaîne (espaces de fin). Ainsi, nous pouvons l'utiliser pour supprimer ou séparer des éléments de chaque ligne, puis les stocker dans une liste en utilisant la notation [].

Exemple :

with open('test.txt') as f:
    lines = [line.rstrip() for line in f]
print(lines)

Sortie :

['Jeff Bezos', 'Bill Gates', 'Mark Zuckerberg', 'Bernard Arnault & family', 'Mukesh Ambani', 'Steve Ballmer', 'Warren Buffett', 'Larry Page', 'Elon Musk', 'Sergey Brin']

Méthode 3 :Utilisation de la méthode for Loop et strip()

Une autre approche de notre problème consiste à utiliser une boucle for pour parcourir les lignes du fichier une par une, puis les ajouter à une liste en utilisant le append() fonction. Le strip() La fonction entre à nouveau en jeu, ce qui nous permet de supprimer le caractère de nouvelle ligne.

with open("test.txt") as file_in:
    lines = []
    for line in file_in:
        lines.append(line.strip('\n'))
    print(lines)

Sortie :

['Jeff Bezos', 'Bill Gates', 'Mark Zuckerberg', 'Bernard Arnault & family', 'Mukesh Ambani', 'Steve Ballmer', 'Warren Buffett', 'Larry Page', 'Elon Musk', 'Sergey Brin']

Méthode 4 :Utilisation de splitlines()

splitlines() est une fonction intégrée à Python qui est utilisée pour diviser une chaîne de rupture aux limites de ligne.

Exemple :

# Open the file for reading.
with open('test.txt', 'r') as infile:

    data = infile.read()  # Read the contents of the file into memory.

# Return a list of the lines, breaking at line boundaries.
li = data.splitlines()
print(li)

Sortie :

['Jeff Bezos', 'Bill Gates', 'Mark Zuckerberg', 'Bernard Arnault & family', 'Mukesh Ambani', 'Steve Ballmer', 'Warren Buffett', 'Larry Page', 'Elon Musk', 'Sergey Brin']

Dans la solution ci-dessus, nous ouvrons le fichier pour le lire et l'assignons à la variable 'infile .' Une fois l'exécution du code terminée, le fichier sera automatiquement fermé. Ensuite, nous utilisons le splitlines() méthode pour le stocker dans une liste en stockant chaque ligne du fichier en tant qu'élément séparé.

Méthode 5 :Utilisation de la bibliothèque pathlib et de la méthode splitlines()

La pathlib bibliothèque a été introduite dans Python 3.4 et a une méthode pratique connue sous le nom de read_text() ce qui est un bon moyen de lire le fichier sans avoir à se soucier de l'ouvrir ou de le fermer. Le splitlines transforme le contenu du fichier en une liste contenant les éléments du fichier ligne par ligne.

Exemple :

from pathlib import Path
p = Path('test.txt')
lines = p.read_text().splitlines()
print(lines)

Sortie :

['Jeff Bezos', 'Bill Gates', 'Mark Zuckerberg', 'Bernard Arnault & family', 'Mukesh Ambani', 'Steve Ballmer', 'Warren Buffett', 'Larry Page', 'Elon Musk', 'Sergey Brin']

Méthode 6 :Utilisation de la compréhension de liste

List comprehension est une manière compacte de créer des listes. La formule simple est [expression + context] .

  • Expression :que faire de chaque élément de la liste ?
  • Contexte :quels éléments sélectionner ? Le contexte consiste en un nombre arbitraire de for et if déclarations.

L'exemple [x for x in range(3)] crée la liste [0, 1, 2] .

Si vous souhaitez en savoir plus sur les compréhensions de liste, veuillez consulter notre tutoriel de blog ici. Voyons maintenant une solution en une ligne à notre problème en utilisant la compréhension de liste.

print([line.rstrip() for line in open('test.txt')])

sortie :

['Jeff Bezos', 'Bill Gates', 'Mark Zuckerberg', 'Bernard Arnault & family', 'Mukesh Ambani', 'Steve Ballmer', 'Warren Buffett', 'Larry Page', 'Elon Musk', 'Sergey Brin']

Méthode 7 :Lire un fichier csv ligne par ligne et stocker dans une liste

Jusqu'à présent, nous avons vu comment lire un fichier texte ligne par ligne et stocker les éléments dans une liste. Voyons maintenant comment nous pouvons faire de même pour un csv dossier. L'approche que nous utilisons, dans ce cas, est les pandas bibliothèque en Python qui nous permet de lire les données du csv fichier et stocker les valeurs dans un tableau. Nous pouvons convertir le tableau en une liste en utilisant le tolist() méthode.

Le fichier que nous allons mentionner dans l'exemple à suivre ressemble à celui donné ci-dessous.

test.csvTélécharger

Voyons maintenant la solution à notre problème dans le programme ci-dessous.

import pandas as pd
data = pd.read_csv('test.csv') # You can also add parameters such as header, sep, etc.
array = data.values
print(array.tolist())

Sortie :

[['Bill Gates'], ['Mark Zuckerberg'], ['Bernard Arnault & family'], ['Mukesh Ambani'], ['Steve Ballmer'], ['Warren Buffett'], ['Larry Page'], ['Elon Musk'], ['Sergey Brin']]

Conclusion

J'espère qu'après avoir lu cet article, vous pourrez lire les fichiers ligne par ligne, puis stocker les éléments dans une liste de sorte que chaque ligne représente un élément de la liste. Veuillez vous abonner et rester à l'écoute pour d'autres articles intéressants !