csv – Lecture et écriture de fichiers CSV¶

Contenu du module¶

Le csv le module définit les fonctions suivantes:

csv.reader(csvfile, dialect = « excel », ** fmtparams ) ¶

Renvoie un objet lecteur qui itérera sur les lignes du fichier csvfile donné.csvfile peut être nimporte quel objet prenant en charge le protocole itérateur et retourne astring chaque fois que sa méthode __next__() est appelée – les objets fichier et les objets liste conviennent tous deux. Si csvfile est un objet fichier, il doit être ouvert avec newline="". 1 Un paramètre optionnel de dialogue peut être donné qui est utilisé pour définir un ensemble de paramètres spécifiques à un dialecte CSV particulier. Il peut sagir dune instance dune sous-classe de la classe Dialect ou de lune des chaînes renvoyées par la fonction list_dialects(). Les autres arguments de mot-clé optionnels fmtparams peuvent être fournis pour remplacer les paramètres de formatage individuels dans le dialogue courant. Pour plus de détails sur le dialecte et les paramètres de formatage, consultez la section Dialectes et paramètres de formatage.

Chaque ligne lue dans le fichier csv est renvoyée sous forme de liste de chaînes. Aucune conversion automatique du type de données nest effectuée à moins que loption de format QUOTE_NONNUMERIC ne soit spécifiée (auquel cas les champs sans guillemets sont transformés en flottants).

Un court exemple dutilisation:

csv.writer(csvfile, dialect = « excel », ** fmtparams) ¶

Renvoie un objet écrivain responsable de la conversion les données de lutilisateur dans des chaînes délimitées sur lobjet de type fichier donné. csvfile peut être nimporte quel objet avec une méthode write(). Si csvfile est un objet fichier, il doit être ouvert avec newline="" 1. Un paramètre de dialecte optionnel peut être donné qui est utilisé pour définir un ensemble de paramètres spécifiques à un dialecte CSV particulier. Il peut sagir dune instance dune sous-classe de la classe Dialect ou de lune des chaînes renvoyées par la fonction list_dialects(). Les autres arguments de mot-clé optionnels fmtparams peuvent être fournis pour remplacer les paramètres de formatage individuels dans le dialogue courant. Pour plus de détails sur le dialecte et les paramètres de formatage, consultez la section Dialectes et paramètres de formatage. Pour faciliter au maximum linterface avec les modules qui implémentent lAPI DB, la valeur None est écrite sous forme de chaîne vide. Bien que cette transformation ne soit pas réversible, elle facilite le vidage des valeurs de données SQL NULL dans des fichiers CSV sans prétraiter les données renvoyées par un appel cursor.fetch*. Toutes les autres données non-chaîne sont stringifiées avec str() avant dêtre écrit.

Un court exemple dutilisation:

csv.register_dialect(nom]) ¶

Associez le dialecte au nom. nom doit être une chaîne. Le dialecte peut être spécifié soit en passant une sous-classe de Dialect, soit par des arguments de mot-clé fmtparams, ou les deux, avec des arguments de mot-clé remplaçant les paramètres du dialecte. Pour plus de détails sur le dialecte et les paramètres de formatage, reportez-vous à la section Dialectes et paramètres de formatage.

csv.unregister_dialect(nom) ¶

Supprimez le dialecte associé au nom du registre des dialectes. Un Error est déclenché si le nom nest pas un nom de dialecte enregistré.

csv.get_dialect(nom) ¶

Renvoie le dialecte associé au nom. Un Error est déclenché si le nom nest pas un nom de dialecte enregistré. Cette fonction renvoie un Dialect.

csv.list_dialects() ¶

Renvoie les noms de tous les dialectes enregistrés.

csv.field_size_limit() ¶

Renvoie la taille maximale actuelle du champ autorisé par lanalyseur. Si new_limit est donné, cela devient la nouvelle limite.

Le module csv définit les classes suivantes:

classcsv.DictReader(f, fieldnames = None, restkey = None, restval = None, dialect = « excel », * args, ** kwds) ¶

Créer un objet qui fonctionne comme un lecteur ordinaire mais mappe les informations de chaque ligne à un dict dont les clés sont données par le paramètre fieldnames en option.

Le paramètre fieldnames est une séquence. Si les noms de champ sont omis, les valeurs de la première ligne du fichier f seront utilisées comme noms de champ. Indépendamment de la façon dont les noms de champ sont déterminés, le dictionnaire conserve leur ordre dorigine.

Si une ligne a plus de champs que de noms de champ, les données restantes sont placées dans une liste et stockées avec le nom de champ spécifié par restkey (qui par défaut à None). Si une ligne non vide a moins de champs que de noms de champs, les valeurs manquantes sont remplies avec la valeur de restval (qui par défaut à None).

Tous les autres arguments facultatifs ou mots-clés sont transmis à linstance reader sous-jacente.

Modifié dans la version 3.6: les lignes renvoyées sont maintenant de type OrderedDict.

Modifié dans la version 3.8: les lignes renvoyées sont maintenant de type dict.

Un court exemple dutilisation:

classcsv.DictWriter( f, fieldnames, restval = «  », extrasaction = « rise », dialect = « excel », * args, ** kwds) ¶

Créez un objet qui fonctionne comme un écrivain ordinaire mais mappe les dictionnaires sur les lignes de sortie. Le paramètre fieldnames est une sequence de clés qui identifient lordre dans lequel les valeurs du dictionnaire passées à la méthode writerow() sont écrites dans filef. Le paramètre optionnel restval spécifie la valeur à écrire sil manque une clé dans les noms de champ. Si le dictionnaire transmis à la méthode writerow() contient une clé introuvable dans les noms de champs, le paramètre dextraction facultatif indique laction à effectuer. Sil est défini sur "raise", la valeur par défaut, un ValueError est déclenché.Sil est défini sur "ignore", les valeurs supplémentaires du dictionnaire sont ignorées. les arguments facultatifs ou de mot-clé sont transmis à linstance writer sous-jacente.

Notez que contrairement à la classe DictReader, les noms de champ le paramètre de la classe DictWriter nest pas facultatif.

Un court exemple dutilisation:

classcsv.Dialect

La classe Dialect est une classe de conteneur sur laquelle reposent principalement ses attributs, qui sont utilisés pour définir les paramètres dun reader ou writer instance.

classcsv.excel

La classe excel définit les propriétés habituelles dun fichier CSV généré par Excel. Il est enregistré sous le nom de dialecte "excel".

classcsv.excel_tab

La classe excel_tab définit les propriétés habituelles dun fichier délimité par Excel généré par le TAB. Il est enregistré sous le nom de dialecte "excel-tab".

classcsv.unix_dialect

La classe unix_dialect définit les propriétés habituelles dun fichier CSV généré sur les systèmes UNIX, cest-à-dire en utilisant "\n" comme terminateur de ligne et en citant tous les champs. Il est enregistré sous le nom de dialecte "unix".

Nouveau dans la version 3.2.

classcsv.Sniffer

La classe Sniffer est utilisée pour déduire le format dun fichier CSV.

La classe Sniffer fournit deux méthodes:

sniff(sample, delimiters = None) ¶

Analyser léchantillon donné et renvoyer une sous-classe Dialect reflétant les paramètres trouvés. Si le paramètre optionnel délimiteurs est donné, il est interprété comme une chaîne contenant des caractères validdelimiter possibles.

has_header(sample) ¶

Analyser le texte dexemple (présumé CSV) et renvoyez True si la première ligne semble être une série den-têtes de colonnes.

Un exemple pour Sniffer use:

Le module csv définit les constantes suivantes:

csv.QUOTE_ALL

Demande aux writer de citer tous les champs.

csv.QUOTE_MINIMAL

Indique aux objets writer de ne citer que les champs contenant des caractères spéciaux tels que le délimiteur, le quotechar ou lun des caractères du déterminateur de ligne.

csv.QUOTE_NONNUMERIC

Demande aux objets writer de citer tous les champs non numériques .

Demande au lecteur de convoquer Insérez tous les champs non entre guillemets pour saisir float.

csv.QUOTE_NONE

Indique writer objets pour ne jamais citer les champs. Lorsque le paramètre currentdelimiter apparaît dans les données de sortie, il est précédé du caractère déchappement actuel. Si escapechar nest pas défini, le rédacteur lèvera Error si des caractères nécessitant un échappement sont rencontrés.

Indique reader pour neffectuer aucun traitement spécial des guillemets.

Le module csv définit lexception suivante:

exceptioncsv.Error

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *