# 19.10. `uu` — Encode et décode les fichiers uuencode

Code source : Lib/uu.py

Ce module encode et décode les fichiers au format uuencode, permettant à des données binaires d’être transférées lors de connexion ASCII. Pour tous les arguments où un fichier est attendu, les fonctions acceptent un « objet fichier-compatible ». Pour des raisons de compatibilité avec les anciennes versions de Python, une chaîne de caractères contenant un chemin est aussi acceptée, et le fichier correspondant sera ouvert en lecture et écriture ; le chemin `'-'` est considéré comme l’entrée ou la sortie standard. Cependant cette interface est obsolète ; il vaut mieux que l’appelant ouvre le fichier lui-même, en s’assurant si nécessaire que le mode d’ouverture soit `'rb'` ou `'wb'` sur Windows.

Ce code provient d’une contribution de Lance Ellinghouse et a été modifié par Jack Jansen.

Le module `uu` définit les fonctions suivantes :

`uu.``encode`(in_file, out_file, name=None, mode=None)

  Uuencode le fichier in_file dans le fichier out_file. Le fichier uuencodé contiendra une entête spécifiant les valeurs de name et mode par défaut pour le décodage du fichier. Par défaut ces valeurs sont prises de in_file ou valent respectivement `'-'` et `0o666`.

`uu.``decode`(in_file, out_file=None, mode=None, quiet=False)

  Décode le fichier in_file et écrit le résultat dans out_file. Si out_file est un chemin, mode est utilisé pour les permissions du fichier lors de sa création. Les valeurs par défaut pour out_file et mode sont récupérées des entêtes uuencode. Cependant, si le fichier spécifié par les entêtes est déjà existant, une exception `uu.Error` est levée.

  La fonction `decode()` écrit un avertissement sur la sortie d’erreur si l’entrée contient des erreurs mais que Python a pu s’en sortir. Mettre quiet à True empêche l’écriture de cet avertissement.

exception `uu.``Error`

  Classe fille d”`Exception`, elle peut être levée par `uu.decode()` dans différentes situations, tel que décrit plus haut, mais aussi en cas d’entête mal formatée ou d’entrée tronquée.

Voir aussi

Module `binascii`

  Module secondaire contenant les conversions ASCII vers binaire et binaire vers ASCII.