Lecture fichier de données avec Python

Lecture fichier de données avec Python #

On a le fichier suivant, contenant login, password et id numérique :

toto:monpass:1234
titi:passwd:3615
tata:superpwd:42

Si votre fichier est un fichier csv, regardez en premier la lecture de fichier avec le module csv

Lecture sans le module csv #

On peut le lire et le traiter en Python ainsi :

with open("fic_pass.txt", "r") as f:
    lignes = f.readlines()

# lignes est une liste dont chaque élément 
# est une ligne du fichier
print(lignes)

# On enlève les retours chariot en fin de ligne

lignes_2 = [l.strip() for l in lignes]

# puis on découpe en champs sur le :

fields = [l.split(":") for l in lignes_2]

print(fields)

Ou encore :

with open("fic_pass.txt", "r") as f:
    raw_data = f.read()

# On crée la liste de lignes (n coupant sur \n
lignes = raw_data.split("\n")

# puis on découpe en champs sur le :
fields = [l.split(":") for l in lignes]
print(fields)

Lecture avec le module csv #

Dans ce cas précis, le fichier est un fichier csv avec : comme séparateur de champs. On peut donc aussi utiliser le module csv de la bibliothèque Python standard :

import csv 
fields = []
with open("fic_pass.txt", "r") as f:
    reader = csv.reader(f, delimiter=':')
    for row in reader:
        fields.append(row)
print(fields)

Dans le cas où les colonnes ont des titres, on pourra utiliser csv.DictReader pour produire une liste de dictionnaires plutôt qu’une liste de listes.