Le traitement de fichiers avec Python

Vous avez déjà des rudiments de Python et vous souhaiteriez pouvoir manipuler des fichiers avec ce langage ? Suivez le guide !

a marqué ce sujet comme résolu.

Bonjour,

Je suis entrain de revoir ma partie sur Pathlib (en effet, j’étais passé à côté de l’esprit du module !), et je me trouve face à un choix : soit je parle des méthodes de lecture/écriture de pathlib et je vois mal comment je pourrais par la suite parler de la fonction native open, soit je fais le choix d’omettre les méthodes de pathlib pour parler de la fonction open, et je ne sais pas trop quoi faire… Pourriez-vous me dire si l’une des propositions est meilleure que l’autre ?

Merci d’avance pour votre aide,

@flopy78

Bonjour,

Je ne comprends pas pourquoi présenter une approche exclurait l’autre.
Les méthodes de pathlib sont des aides pour réaliser plus facilement des opérations précises (écrire tout un texte dans un fichier par exemple) qui n’excluent pas qu’il est parfois nécessaire de manipuler directement un fichier (pour itérer dessus, pour le remplir progressivement, etc.)

Ensuite pour ce qui est de Path.open et la fonction native open, la première est logique quand on est déjà en train de manipuler des chemins tandis que la seconde intervient quand on a juste un chemin sous forme de str.

Bonjour,

Merci pour vos conseils.

En soit, je peux omettre Path.open et les autres méthodes de lecture/écriture de pathlib dans la partie dédiée à Pathlib, et rajouter une section après celles concernant open, montrant que pathlib nous met également quelques raccourcis à disposition… Ou je me trompe complètement ?

Bonne journée,

@flopy78

Bonjour !

De ce que j’ai lu, tu n’explique le traitement de .CSV que par le biais de Pandas, et il existe un module built-in qui permet de le traiter :

import csv

with open("feuille.csv") as csv_file:
    contenu = csv.reader(json_file, quotechar="\n", delimiter=";")
    # J'ai des doutes si c'est d'abord les colonnes ou le lignes ^^'
    for y,colonne in enumerate(contenu):
        for x,case in enumerate(colonne) :
            print(f"x{x} y{y} = {case}") 

# (Cet exemple tiré de la doc, je n'ai pas eu encore l'occasion de l'essayer)
with open('eggs.csv', 'w', newline='') as csvfile:
    spamwriter = csv.writer(csvfile, delimiter=' ',
                            quotechar='|', quoting=csv.QUOTE_MINIMAL)
    spamwriter.writerow(['Spam'] * 5 + ['Baked Beans'])
    spamwriter.writerow(['Spam', 'Lovely Spam', 'Wonderful Spam'])

Il existe aussi un nouveau format pris en compte depuis Python 3.11, c’est le TOML. ça ressemble pas mal au JSON sur le fond mais avec une syntaxe différente :

import tomllib

with open("fichier.tomllib", "rb") as toml_file:
    contenu:dict = tomllib.load(toml_file)

Je trouve que c’est dommage d’omettre ces librairies, surtout au vu de leur simplicité.

Bye et bonne journée/soirée :D

Connectez-vous pour pouvoir poster un message.
Connexion

Pas encore membre ?

Créez un compte en une minute pour profiter pleinement de toutes les fonctionnalités de Zeste de Savoir. Ici, tout est gratuit et sans publicité.
Créer un compte