Tutorial Input-Output Review.

This commit is contained in:
Christophe Nanteuil 2018-02-09 23:25:04 +01:00 committed by Julien Palard
parent 2215cdafea
commit a2e79cffee

View File

@ -8,7 +8,7 @@ msgstr ""
"Project-Id-Version: Python 3.6\n" "Project-Id-Version: Python 3.6\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2017-08-10 00:20+0200\n" "POT-Creation-Date: 2017-08-10 00:20+0200\n"
"PO-Revision-Date: 2017-09-22 10:13+0200\n" "PO-Revision-Date: 2018-02-09 23:13+0100\n"
"Last-Translator: \n" "Last-Translator: \n"
"Language-Team: \n" "Language-Team: \n"
"Language: fr\n" "Language: fr\n"
@ -28,9 +28,9 @@ msgid ""
"chapter will discuss some of the possibilities." "chapter will discuss some of the possibilities."
msgstr "" msgstr ""
"Il existe bien des moyens de présenter les sorties d'un programmes ; les " "Il existe bien des moyens de présenter les sorties d'un programmes ; les "
"données peuvent être imprimées sous une forme lisible par un être humain, ou " "données peuvent être affichées sous une forme lisible par un être humain ou "
"sauvegardées dans un fichier pour une utilisation future. Ce chapitre " "sauvegardées dans un fichier pour une utilisation future. Ce chapitre "
"présentera donc diverses possibilités." "présente quelques possibilités."
#: ../Doc/tutorial/inputoutput.rst:15 #: ../Doc/tutorial/inputoutput.rst:15
msgid "Fancier Output Formatting" msgid "Fancier Output Formatting"
@ -43,11 +43,11 @@ msgid ""
"method of file objects; the standard output file can be referenced as ``sys." "method of file objects; the standard output file can be referenced as ``sys."
"stdout``. See the Library Reference for more information on this.)" "stdout``. See the Library Reference for more information on this.)"
msgstr "" msgstr ""
"Jusque là, nous avons rencontré deux moyens d'écrire des données : les " "Jusqu'ici, nous avons rencontré deux moyens d'écrire des données : les "
"*déclarations d'expressions* et la fonction :func:`print`. (Une troisième " "*déclarations d'expressions* et la fonction :func:`print`. Une troisième "
"méthode consiste à utiliser la méthode :meth:`write` des fichiers, le " "méthode consiste à utiliser la méthode :meth:`write` des fichiers, avec le "
"fichier de sortie standard peut être référence en tant que ``sys.stdout``. " "fichier de sortie standard référencé en tant que ``sys.stdout``. Voyez le "
"Voyez le Guide de Référence de la Bibliothèque Standard pour en savoir plus.)" "Guide de Référence de la Bibliothèque Standard pour en savoir plus."
#: ../Doc/tutorial/inputoutput.rst:22 #: ../Doc/tutorial/inputoutput.rst:22
msgid "" msgid ""
@ -61,14 +61,13 @@ msgid ""
"<f-strings>`, or the :meth:`str.format` method." "<f-strings>`, or the :meth:`str.format` method."
msgstr "" msgstr ""
"Souvent, vous voudrez plus de contrôle sur le formatage de votre sortie que " "Souvent, vous voudrez plus de contrôle sur le formatage de votre sortie que "
"simplement afficher des valeurs séparées par des espaces. Il y a deux façons " "des valeurs simplement séparées par des espaces. Il existe deux façons de "
"de formatter votre sortie. La première est de le faire vous-même, en " "mettre en forme votre sortie. La première est de le faire vous-même : en "
"utilisant des opérations slicing et de concaténation vous pouvez créer " "découpant et concaténant les chaînes, vous pouvez tout mettre en page comme "
"toutes les dispositions que vous imaginez ; le type ``string`` a des " "vous l'imaginez ; le type ``string`` possède des méthodes pour aligner des "
"méthodes qui effectuent des opérations utiles pour aligner des chaines à une " "chaines à une certaine largeur de colonne, nous voyons ceci un peu plus "
"certaine largeur de colonne, qui seront discutées sous peu. La seconde est " "loin. La deuxième consiste à utiliser des :ref:`littéraux de chaine formatés "
"d'utiliser des :ref:`littéraux de chaine formatés <f-strings>` ou la " "<f-strings>` ou la méthode :meth:`str.format`."
"méthode :meth:`str.format`."
#: ../Doc/tutorial/inputoutput.rst:31 #: ../Doc/tutorial/inputoutput.rst:31
msgid "" msgid ""
@ -76,8 +75,7 @@ msgid ""
"offers yet another way to substitute values into strings." "offers yet another way to substitute values into strings."
msgstr "" msgstr ""
"Le module :mod:`string` contient une classe :class:`~string.Template` qui " "Le module :mod:`string` contient une classe :class:`~string.Template` qui "
"offre encore une autre façon de remplacer des valeurs au sein de chaînes de " "permet aussi de remplacer des valeurs au sein de chaînes de caractères."
"caractères."
#: ../Doc/tutorial/inputoutput.rst:34 #: ../Doc/tutorial/inputoutput.rst:34
msgid "" msgid ""
@ -101,16 +99,16 @@ msgid ""
"structures like lists and dictionaries, have the same representation using " "structures like lists and dictionaries, have the same representation using "
"either function. Strings, in particular, have two distinct representations." "either function. Strings, in particular, have two distinct representations."
msgstr "" msgstr ""
"La fonction :func:`str` est destinée à renvoyer des représentations de " "La fonction :func:`str` est destinée à représenter les valeurs sous une "
"valeurs qui soient lisibles par un être humain, alors que la fonction :func:" "forme lisible par un être humain, alors que la fonction :func:`repr` est "
"`repr` est destinée à générer des représentations qui puissent être lues par " "destinée à générer des représentations qui puissent être lues par "
"l'interpréteur (ou forceront une :exc:`SyntaxError` s'il n'existe aucune " "l'interpréteur (ou qui lèvera une :exc:`SyntaxError` s'il n'existe aucune "
"syntaxe équivalente). Pour les objets qui n'ont pas de représentation " "syntaxe équivalente). Pour les objets qui n'ont pas de représentation "
"humaine spécifique, :func:`str` renverra la même valeur que :func:`repr`. " "humaine spécifique, :func:`str` renvoie la même valeur que :func:`repr`. "
"Beaucoup de valeurs, comme les nombres ou les structures telles que les " "Beaucoup de valeurs, comme les nombres ou les structures telles que les "
"listes ou les dictionnaires, ont la même représentation en utilisant les " "listes ou les dictionnaires, ont la même représentation en utilisant les "
"deux fonctions. Les chaînes de caractères et les nombres à virgule " "deux fonctions. Les chaînes de caractères, en particulier, ont deux "
"flottante, en revanche, ont deux représentations distinctes." "représentations distinctes."
#: ../Doc/tutorial/inputoutput.rst:47 #: ../Doc/tutorial/inputoutput.rst:47
msgid "Some examples::" msgid "Some examples::"
@ -125,9 +123,9 @@ msgid ""
"(Note that in the first example, one space between each column was added by " "(Note that in the first example, one space between each column was added by "
"the way :func:`print` works: it always adds spaces between its arguments.)" "the way :func:`print` works: it always adds spaces between its arguments.)"
msgstr "" msgstr ""
"(Notez que dans ce premier exemple, un espace entre chaque colonne a été " "Notez que dans ce premier exemple, une espace a été ajoutée entre chaque "
"ajouté par la façon dont fonctionne :func:`print`, qui ajoute toujours des " "colonne . C'est le comportement de :func:`print`, elle ajoute toujours des "
"espaces entre ses paramètres.)" "espaces entre ses paramètres."
#: ../Doc/tutorial/inputoutput.rst:105 #: ../Doc/tutorial/inputoutput.rst:105
msgid "" msgid ""
@ -141,14 +139,14 @@ msgid ""
"(If you really want truncation you can always add a slice operation, as in " "(If you really want truncation you can always add a slice operation, as in "
"``x.ljust(n)[:n]``.)" "``x.ljust(n)[:n]``.)"
msgstr "" msgstr ""
"Cet exemple démontre l'utilisation de la méthode :meth:`str.rjust` des " "Cet exemple illustre l'utilisation de la méthode :meth:`str.rjust` des "
"chaînes de caractères, qui fait une justification à droite d'une chaîne dans " "chaînes de caractères ; elle justifie à droite une chaîne dans un champ "
"un champ d'une largeur donnée en ajoutant des espaces sur la gauche. Il " "d'une largeur donnée en ajoutant des espaces sur la gauche. Il existe des "
"existe des méthodes similaires :meth:`str.ljust` et :meth:`str.center`. Ces " "méthodes similaires :meth:`str.ljust` et :meth:`str.center`. Ces méthodes "
"méthodes n'écrivent rien, elles renvoient simplement une nouvelle chaîne. Si " "n'écrivent rien, elles renvoient simplement une nouvelle chaîne. Si la "
"la chaîne passée en paramètre est trop longue, elle n'est pas tronquée mais " "chaîne passée en paramètre est trop longue, elle n'est pas tronquée mais "
"renvoyée sans modification ; ce qui peut déranger votre mise en page mais " "renvoyée sans modification ; cela peut chambouler votre mise en page mais "
"est souvent préférable à l'alternative, qui pourrait mentir sur une valeur " "c'est souvent préférable à l'alternative, qui pourrait mentir sur une valeur "
"(et si vous voulez vraiment tronquer vos valeurs, vous pouvez toujours " "(et si vous voulez vraiment tronquer vos valeurs, vous pouvez toujours "
"utiliser une tranche, comme dans ``x.ljust(n)[:n]``)." "utiliser une tranche, comme dans ``x.ljust(n)[:n]``)."
@ -164,7 +162,7 @@ msgstr ""
#: ../Doc/tutorial/inputoutput.rst:125 #: ../Doc/tutorial/inputoutput.rst:125
msgid "Basic usage of the :meth:`str.format` method looks like this::" msgid "Basic usage of the :meth:`str.format` method looks like this::"
msgstr "" msgstr ""
"L'utilisation de base de la méthode :meth:`str.format` ressemble à cela : ::" "L'utilisation de base de la méthode :meth:`str.format` ressemble à ceci : ::"
#: ../Doc/tutorial/inputoutput.rst:130 #: ../Doc/tutorial/inputoutput.rst:130
msgid "" msgid ""
@ -173,7 +171,7 @@ msgid ""
"brackets can be used to refer to the position of the object passed into the :" "brackets can be used to refer to the position of the object passed into the :"
"meth:`str.format` method. ::" "meth:`str.format` method. ::"
msgstr "" msgstr ""
"Les accolades et les caractères qu'ils contiennent (appelés les champs de " "Les accolades et les caractères à l'intérieur (appelés les champs de "
"formatage) sont remplacés par les objets passés en paramètres à la méthode :" "formatage) sont remplacés par les objets passés en paramètres à la méthode :"
"meth:`str.format`. Un nombre entre accolades se réfère à la position de " "meth:`str.format`. Un nombre entre accolades se réfère à la position de "
"l'objet passé à la méthode :meth:`str.format`. ::" "l'objet passé à la méthode :meth:`str.format`. ::"
@ -198,7 +196,7 @@ msgid ""
"formatted::" "formatted::"
msgstr "" msgstr ""
"``'!a'`` (appliquer :func:`ascii`), ``'!s'`` (appliquer :func:`str`) et ``'!" "``'!a'`` (appliquer :func:`ascii`), ``'!s'`` (appliquer :func:`str`) et ``'!"
"r'`` (appliquer :func:`repr`)peuvent être utilisées pour convertir les " "r'`` (appliquer :func:`repr`) peuvent être utilisées pour convertir les "
"valeurs avant leur formatage : ::" "valeurs avant leur formatage : ::"
#: ../Doc/tutorial/inputoutput.rst:162 #: ../Doc/tutorial/inputoutput.rst:162
@ -207,10 +205,10 @@ msgid ""
"allows greater control over how the value is formatted. The following " "allows greater control over how the value is formatted. The following "
"example rounds Pi to three places after the decimal." "example rounds Pi to three places after the decimal."
msgstr "" msgstr ""
"Des caractères ``':'`` suivis d'une spécification de formatage peuvent " "Un caractère ``':'`` suivi d'une spécification de formatage peuvent suivre "
"suivre le nom du champ. Ceci offre un niveau de contrôle plus fin sur la " "le nom du champ. Ceci offre un niveau de contrôle plus fin sur la façon dont "
"façon dont les valeurs sont formatées. L'exemple suivant arrondit Pi à trois " "les valeurs sont formatées. L'exemple suivant arrondit Pi à trois chiffres "
"décimales : ::" "après la virgule (NdT : qui, en notation anglo-saxonne, est un point)."
#: ../Doc/tutorial/inputoutput.rst:170 #: ../Doc/tutorial/inputoutput.rst:170
msgid "" msgid ""
@ -227,19 +225,18 @@ msgid ""
"instead of by position. This can be done by simply passing the dict and " "instead of by position. This can be done by simply passing the dict and "
"using square brackets ``'[]'`` to access the keys ::" "using square brackets ``'[]'`` to access the keys ::"
msgstr "" msgstr ""
"Si vous avez vraiment une longue chaîne de formatage que vous ne voulez pas " "Si vous avez une chaîne de formatage vraiment longue que vous ne voulez pas "
"découper, ce serait bien de pouvoir référencer les variables à formater par " "découper, il est possible de référencer les variables à formater par leur "
"leur nom plutôt que par leur position. Cela peut être fait simplement en " "nom plutôt que par leur position. Utilisez simplement un dictionnaire et la "
"passant un dictionnaire et en utilisant des crochets ``'[]'`` pour accéder " "notation entre crochets ``'[]'`` pour accéder aux clés : ::"
"aux clés : ::"
#: ../Doc/tutorial/inputoutput.rst:191 #: ../Doc/tutorial/inputoutput.rst:191
msgid "" msgid ""
"This could also be done by passing the table as keyword arguments with the " "This could also be done by passing the table as keyword arguments with the "
"'**' notation. ::" "'**' notation. ::"
msgstr "" msgstr ""
"On pourrait également faire ça en passant le tableau comme des arguments " "vous pouvez obtenir le même résultat en passant le tableau comme des "
"nommés en utilisant la notation '**' ::" "arguments nommés en utilisant la notation '**' ::"
#: ../Doc/tutorial/inputoutput.rst:198 #: ../Doc/tutorial/inputoutput.rst:198
msgid "" msgid ""
@ -247,15 +244,15 @@ msgid ""
"`vars`, which returns a dictionary containing all local variables." "`vars`, which returns a dictionary containing all local variables."
msgstr "" msgstr ""
"C'est particulièrement utile en combinaison avec la fonction native :func:" "C'est particulièrement utile en combinaison avec la fonction native :func:"
"`vars`, qui renvoie un dictionnaire contenant toutes les variables locales." "`vars` qui renvoie un dictionnaire contenant toutes les variables locales."
#: ../Doc/tutorial/inputoutput.rst:201 #: ../Doc/tutorial/inputoutput.rst:201
msgid "" msgid ""
"For a complete overview of string formatting with :meth:`str.format`, see :" "For a complete overview of string formatting with :meth:`str.format`, see :"
"ref:`formatstrings`." "ref:`formatstrings`."
msgstr "" msgstr ""
"Pour avoir une vue complète du formatage des chaînes de caractères avec la " "Pour avoir une description complète du formatage des chaînes de caractères "
"méthode :meth:`str.format`, voyez : :ref:`formatstrings`." "avec la méthode :meth:`str.format`, lisez : :ref:`formatstrings`."
#: ../Doc/tutorial/inputoutput.rst:206 #: ../Doc/tutorial/inputoutput.rst:206
msgid "Old string formatting" msgid "Old string formatting"
@ -269,15 +266,15 @@ msgid ""
"formatting operation. For example::" "formatting operation. For example::"
msgstr "" msgstr ""
"L'opérateur ``%`` peut aussi être utilisé pour formater des chaînes. Il " "L'opérateur ``%`` peut aussi être utilisé pour formater des chaînes. Il "
"interprète l'argument de gauche un peu comme une chaîne de formatage d'une " "interprète l'argument de gauche pratiquement comme une chaîne de formatage "
"fonction :c:func:`sprintf` à appliquer à l'argument de droite, et renvoie la " "de la fonction :c:func:`sprintf` à appliquer à l'argument de droite, et il "
"chaîne résultant de cette opération de formatage. Par exemple : ::" "renvoie la chaîne résultant de cette opération de formatage. Par exemple : ::"
#: ../Doc/tutorial/inputoutput.rst:217 #: ../Doc/tutorial/inputoutput.rst:217
msgid "" msgid ""
"More information can be found in the :ref:`old-string-formatting` section." "More information can be found in the :ref:`old-string-formatting` section."
msgstr "" msgstr ""
"Vous trouverez plus d'informations dans la section :ref:`old-string-" "Vous trouvez plus d'informations dans la section :ref:`old-string-"
"formatting`." "formatting`."
#: ../Doc/tutorial/inputoutput.rst:223 #: ../Doc/tutorial/inputoutput.rst:223
@ -289,8 +286,8 @@ msgid ""
":func:`open` returns a :term:`file object`, and is most commonly used with " ":func:`open` returns a :term:`file object`, and is most commonly used with "
"two arguments: ``open(filename, mode)``." "two arguments: ``open(filename, mode)``."
msgstr "" msgstr ""
":func:`open` renvoie un :term:`objet fichier`, et est le plus souvent " "La fonction :func:`open` renvoie un :term:`objet fichier` et est le plus "
"utilisé avecdeux arguments : ``open(filename, mode)``." "souvent utilisée avec deux arguments : ``open(nomfichier, mode)``."
#: ../Doc/tutorial/inputoutput.rst:241 #: ../Doc/tutorial/inputoutput.rst:241
msgid "" msgid ""
@ -303,14 +300,14 @@ msgid ""
"reading and writing. The *mode* argument is optional; ``'r'`` will be " "reading and writing. The *mode* argument is optional; ``'r'`` will be "
"assumed if it's omitted." "assumed if it's omitted."
msgstr "" msgstr ""
"Le premier argument est une chaîne contenant le nom du fichier. Le second " "Le premier argument est une chaîne contenant le nom du fichier. Le deuxième "
"argument est une autre chaîne contenant quelques caractères décrivant la " "argument est une autre chaîne contenant quelques caractères décrivant la "
"façon dont le fichier sera utilisé. *mode* peut être ``'r'`` quand le " "façon dont le fichier est utilisé. *mode* peut être ``'r'`` quand le fichier "
"fichier ne sera accédé qu'en lecture, ``'w'`` en écriture seulement (un " "n'est accédé qu'en lecture, ``'w'`` en écriture seulement (un fichier "
"fichier existant portant le même nom sera alors écrasé), et ``'a'`` ouvre le " "existant portant le même nom sera alors écrasé) et ``'a'`` ouvre le fichier "
"fichier en mode ajout (toute donnée écrite dans le fichier est " "en mode ajout (toute donnée écrite dans le fichier est automatiquement "
"automatiquement ajoutée à la fin). ``'r+'`` ouvre le fichier en mode lecture/" "ajoutée à la fin). ``'r+'`` ouvre le fichier en mode lecture/écriture. "
"écriture. L'argument *mode* est optionnel ; sa valeur par défaut est ``'r'``." "L'argument *mode* est optionnel, sa valeur par défaut est ``'r'``."
#: ../Doc/tutorial/inputoutput.rst:250 #: ../Doc/tutorial/inputoutput.rst:250
msgid "" msgid ""
@ -321,14 +318,14 @@ msgid ""
"`binary mode`: now the data is read and written in the form of bytes " "`binary mode`: now the data is read and written in the form of bytes "
"objects. This mode should be used for all files that don't contain text." "objects. This mode should be used for all files that don't contain text."
msgstr "" msgstr ""
"Normalement, les fichiers sont ouverts en :dfn:`mode texte`, c'est à dire " "Normalement, les fichiers sont ouverts en :dfn:`mode texte`, c'est-à-dire "
"que vous lisez et écrivez des chaînes de caractères depuis et dans ce " "que vous lisez et écrivez des chaînes de caractères depuis et dans ce "
"fichier, qui y sont encodées avec un encodage donné. Si aucun encodage n'est " "fichier, suivant un encodage donné. Si aucun encodage n'est spécifié, "
"spécifié, l'encodage par défaut dépendra de la plateforme (voir :func:" "l'encodage par défaut dépend de la plateforme (voir :func:`open`). ``'b'`` "
"`open`). ``'b'`` collé à la fin du mode indique que le fichier doit être " "collé à la fin du mode indique que le fichier doit être ouvert en :dfn:`mode "
"ouvert en :dfn:`mode binaire` c'est à dire que les données sont lues et " "binaire` c'est-à-dire que les données sont lues et écrites sous formes "
"écrites sous formes d'octets. Ce mode est à utiliser pour les fichiers " "d'octets (type *bytes*). Ce mode est à utiliser pour les fichiers contenant "
"contenant autre chose que du texte." "autre chose que du texte."
#: ../Doc/tutorial/inputoutput.rst:257 #: ../Doc/tutorial/inputoutput.rst:257
msgid "" msgid ""
@ -342,12 +339,13 @@ msgid ""
msgstr "" msgstr ""
"En mode texte, le comportement par défaut, à la lecture, est de convertir " "En mode texte, le comportement par défaut, à la lecture, est de convertir "
"les fin de lignes spécifiques à la plateforme (``\\n`` sur Unix, ``\\r\\n`` " "les fin de lignes spécifiques à la plateforme (``\\n`` sur Unix, ``\\r\\n`` "
"sur windows etc...) en simples ``\\n``. Lors de l'écriture, le comprennent " "sur windows etc...) en simples ``\\n``. Lors de l'écriture, le comportement "
"par défaut est d'appliquer l'opération contraire : les ``\\n`` sont " "par défaut est d'appliquer l'opération inverse : les ``\\n`` sont convertis "
"convertis dans leur équivalent sur la plateforme courante. Ces modifications " "dans leur équivalent sur la plateforme courante. Ces modifications "
"effectuées automatiquement sont normales pour du texte mais détérioreraient " "effectuées automatiquement sont normales pour du texte mais détérioreraient "
"des données binaires comme un fichier :file:`JPEG` ou :file:`EXE`. Soyez " "des données binaires contenues dans un fichier de type :file:`JPEG` ou :file:"
"particulièrement attentifs à ouvrir ces fichiers binaires en mode binaire." "`EXE`. Soyez particulièrement attentifs à ouvrir ces fichiers binaires en "
"mode binaire."
#: ../Doc/tutorial/inputoutput.rst:265 #: ../Doc/tutorial/inputoutput.rst:265
msgid "" msgid ""
@ -358,10 +356,10 @@ msgid ""
"-\\ :keyword:`finally` blocks::" "-\\ :keyword:`finally` blocks::"
msgstr "" msgstr ""
"C'est une bonne pratique d'utiliser le mot-clé :keyword:`with` lorsque vous " "C'est une bonne pratique d'utiliser le mot-clé :keyword:`with` lorsque vous "
"traitez des fichiers. Ceci procure l'avantage de toujours fermer " "traitez des fichiers. Vous fermez ainsi toujours correctement le fichier, "
"correctement le fichier, même si une exception est levée. Utiliser :keyword:" "même si une exception est levée. Utiliser :keyword:`with` est aussi beaucoup "
"`with` est aussi beaucoup plus court que d'utiliser l'équivalent avec des " "plus court que d'utiliser l'équivalent avec des blocs :keyword:`try`\\ -\\ :"
"blocs :keyword:`try`\\ -\\ :keyword:`finally` : ::" "keyword:`finally` : ::"
#: ../Doc/tutorial/inputoutput.rst:276 #: ../Doc/tutorial/inputoutput.rst:276
msgid "" msgid ""
@ -373,12 +371,12 @@ msgid ""
"implementations will do this clean-up at different times." "implementations will do this clean-up at different times."
msgstr "" msgstr ""
"Si vous n'utilisez pas le mot clef :keyword:`with`, vous devez appeler ``f." "Si vous n'utilisez pas le mot clef :keyword:`with`, vous devez appeler ``f."
"close()`` pour fermer le fichier et immédiatement libérer les resources " "close()`` pour fermer le fichier et immédiatement libérer les ressources "
"systèmes qu'il utilise. Si vous ne fermez pas explicitement le fichier, le " "système qu'il utilise. Si vous ne fermez pas explicitement le fichier, le "
"ramasse-miette de Python finira par détruire l'objet et fermer le fichier " "ramasse-miette de Python finira par détruire l'objet et fermer le fichier "
"pour vous, mais le fichier peut rester ouvert pendant un moment. Un autre " "pour vous, mais le fichier peut rester ouvert pendant un moment. Un autre "
"risque est que différentes implémentations de Python risquent faire ce " "risque est que différentes implémentations de Python risquent faire ce "
"nettoyage à différents moments." "nettoyage à des moments différents."
#: ../Doc/tutorial/inputoutput.rst:284 #: ../Doc/tutorial/inputoutput.rst:284
msgid "" msgid ""
@ -386,9 +384,9 @@ msgid ""
"calling ``f.close()``, attempts to use the file object will automatically " "calling ``f.close()``, attempts to use the file object will automatically "
"fail. ::" "fail. ::"
msgstr "" msgstr ""
"Après la fermeture du fichier, que ce soit via une instruction :keyword:" "Après la fermeture du fichier, que ce soit *via* une instruction :keyword:"
"`with` ou en appelant ``f.close()``, toute tentative d'utilisation de " "`with` ou en appelant ``f.close()``, toute tentative d'utilisation de "
"l'objet fichier échouera systématiquement. ::" "l'objet fichier échoue systématiquement. ::"
#: ../Doc/tutorial/inputoutput.rst:298 #: ../Doc/tutorial/inputoutput.rst:298
msgid "Methods of File Objects" msgid "Methods of File Objects"
@ -399,8 +397,8 @@ msgid ""
"The rest of the examples in this section will assume that a file object " "The rest of the examples in this section will assume that a file object "
"called ``f`` has already been created." "called ``f`` has already been created."
msgstr "" msgstr ""
"Les derniers exemples de cette section supposeront qu'un objet fichier " "Les derniers exemples de cette section supposent qu'un objet fichier appelé "
"appelé ``f`` a déjà été créé." "``f`` a déjà été créé."
#: ../Doc/tutorial/inputoutput.rst:303 #: ../Doc/tutorial/inputoutput.rst:303
msgid "" msgid ""
@ -412,13 +410,13 @@ msgid ""
"Otherwise, at most *size* bytes are read and returned. If the end of the " "Otherwise, at most *size* bytes are read and returned. If the end of the "
"file has been reached, ``f.read()`` will return an empty string (``''``). ::" "file has been reached, ``f.read()`` will return an empty string (``''``). ::"
msgstr "" msgstr ""
"Pour lire le contenu d'un fichier, appelez ``f.read(size)``, qui lit une " "Pour lire le contenu d'un fichier, appelez ``f.read(taille)`` : elle lit une "
"certaine quantité de données et les donne sous la forme d'une chaîne (en " "certaine quantité de données et les donne sous la forme d'une chaîne (en "
"mode texte) ou dans un objet *bytes* (en mode binaire). *size* est un " "mode texte) ou dans un objet *bytes* (en mode binaire). *taille* est un "
"argument numérique optionnel. Quand *size* est omis ou négatif, le contenu " "argument numérique optionnel. Quand *taille* est omis ou négatif, le contenu "
"entier du fichier est lu et donné, c'est votre problème si le fichier est " "entier du fichier est lu et donné, c'est votre problème si le fichier est "
"deux fois plus gros que la mémoire de votre machine. Sinon, un maximum de " "deux fois plus gros que la mémoire de votre machine. Sinon, un maximum de "
"*size* octets sont lus et rendus. Lorsque la fin du fichier est atteinte, " "*taille* octets sont lus et donnés. Lorsque la fin du fichier est atteinte, "
"``f.read()`` renvoie une chaîne vide (``''``). ::" "``f.read()`` renvoie une chaîne vide (``''``). ::"
#: ../Doc/tutorial/inputoutput.rst:317 #: ../Doc/tutorial/inputoutput.rst:317
@ -431,36 +429,36 @@ msgid ""
"``'\\n'``, a string containing only a single newline. ::" "``'\\n'``, a string containing only a single newline. ::"
msgstr "" msgstr ""
"``f.readline()`` lit une seule ligne du fichier ; un caractère de fin de " "``f.readline()`` lit une seule ligne du fichier ; un caractère de fin de "
"ligne (``\\n``) est laissé à la fin de la chaîne, et n'est omis que sur la " "ligne (``\\n``) est laissé à la fin de la chaîne. Il n'est omis que sur la "
"dernière ligne du fichier si celui-ci ne se termine pas un caractère de fin " "dernière ligne du fichier si celui-ci ne se termine pas un caractère de fin "
"de ligne. Ceci permet de rendre la valeur de retour non ambigüe : si ``f." "de ligne. Ceci permet de rendre la valeur de retour non ambigüe : si ``f."
"readline()`` renvoie une chaîne vide, c'est que la fin du fichier a été " "readline()`` renvoie une chaîne vide, c'est que la fin du fichier a été "
"atteinte, alors qu'une ligne vide est représentée par ``'\\n'``, une chaîne " "atteinte, alors qu'une ligne vide est représentée par ``'\\n'`` (une chaîne "
"de caractères ne contenant qu'une fin de ligne. ::" "de caractères ne contenant qu'une fin de ligne). ::"
#: ../Doc/tutorial/inputoutput.rst:331 #: ../Doc/tutorial/inputoutput.rst:331
msgid "" msgid ""
"For reading lines from a file, you can loop over the file object. This is " "For reading lines from a file, you can loop over the file object. This is "
"memory efficient, fast, and leads to simple code::" "memory efficient, fast, and leads to simple code::"
msgstr "" msgstr ""
"Une autre approche de lecture des lignes est de faire une boucle sur l'objet " "Pour lire ligne à ligne, vous pouvez aussi boucler sur l'objet fichier. "
"fichier. Cela est plus efficace en terme de gestion mémoire, plus rapide, et " "C'est plus efficace en terme de gestion mémoire, plus rapide et donne un "
"donne un code plus simple : ::" "code plus simple : ::"
#: ../Doc/tutorial/inputoutput.rst:340 #: ../Doc/tutorial/inputoutput.rst:340
msgid "" msgid ""
"If you want to read all the lines of a file in a list you can also use " "If you want to read all the lines of a file in a list you can also use "
"``list(f)`` or ``f.readlines()``." "``list(f)`` or ``f.readlines()``."
msgstr "" msgstr ""
"Pour lire toutes les lignes d'un fichier, il est aussi possible d'utiliser " "Pour construire une liste avec toutes les lignes d'un fichier, il est aussi "
"``list(f)`` ou ``f.readlines()``." "possible d'utiliser ``list(f)`` ou ``f.readlines()``."
#: ../Doc/tutorial/inputoutput.rst:343 #: ../Doc/tutorial/inputoutput.rst:343
msgid "" msgid ""
"``f.write(string)`` writes the contents of *string* to the file, returning " "``f.write(string)`` writes the contents of *string* to the file, returning "
"the number of characters written. ::" "the number of characters written. ::"
msgstr "" msgstr ""
"``f.write(string)`` écrit le contenu de *string* dans le fichier, et renvoie " "``f.write(chaine)`` écrit le contenu de *chaine* dans le fichier et renvoie "
"le nombre de caractères écrits. ::" "le nombre de caractères écrits. ::"
#: ../Doc/tutorial/inputoutput.rst:349 #: ../Doc/tutorial/inputoutput.rst:349
@ -468,8 +466,8 @@ msgid ""
"Other types of objects need to be converted -- either to a string (in text " "Other types of objects need to be converted -- either to a string (in text "
"mode) or a bytes object (in binary mode) -- before writing them::" "mode) or a bytes object (in binary mode) -- before writing them::"
msgstr "" msgstr ""
"D'autres types doivent être convertis, soit en une chaîne (en mode texte) ou " "Les autres types doivent être convertis, soit en une chaîne (en mode texte), "
"un objet *bytes* (en mode binaire), avant de les écrire : ::" "soit en objet *bytes* (en mode binaire) avant de les écrire : ::"
#: ../Doc/tutorial/inputoutput.rst:357 #: ../Doc/tutorial/inputoutput.rst:357
msgid "" msgid ""
@ -478,8 +476,8 @@ msgid ""
"in binary mode and an opaque number when in text mode." "in binary mode and an opaque number when in text mode."
msgstr "" msgstr ""
"``f.tell()`` renvoie un entier indiquant la position actuelle dans le " "``f.tell()`` renvoie un entier indiquant la position actuelle dans le "
"fichier, mesurée en octets à partir du début du fichier, lorsque le fichier " "fichier, mesurée en octets à partir du début du fichier lorsque le fichier "
"est ouvert en mode binaire, ou un nombre obscure en mode texte." "est ouvert en mode binaire, ou un nombre obscur en mode texte."
#: ../Doc/tutorial/inputoutput.rst:361 #: ../Doc/tutorial/inputoutput.rst:361
msgid "" msgid ""
@ -491,12 +489,12 @@ msgid ""
"*from_what* can be omitted and defaults to 0, using the beginning of the " "*from_what* can be omitted and defaults to 0, using the beginning of the "
"file as the reference point. ::" "file as the reference point. ::"
msgstr "" msgstr ""
"Pour modifier la position dans le fichier, utilisez ``f.seek(offset, " "Pour modifier la position dans le fichier, utilisez ``f.seek(decalage, "
"from_what)``. Laposition est calculée en ajoutant *offset* à un point de " "a_partir_de)``. La position est calculée en ajoutant *decalage* à un point "
"référence ; ce point de référence est sélectionné par l'argument " "de référence ; ce point de référence est déterminé par l'argument "
"*from_what* : 0 pour le début du fichier, 1 pour la position actuelle, et 2 " "*a_partir_de* : 0 pour le début du fichier, 1 pour la position actuelle et 2 "
"pour la fin du fichier. *from_what* peut être omis et sa valeur par défaut " "pour la fin du fichier. *a_partir_de* peut être omis et sa valeur par défaut "
"est 0, utilisant le début du fichier comme point de référence : ::" "est 0 (Python utilise le début du fichier comme point de référence) : ::"
#: ../Doc/tutorial/inputoutput.rst:380 #: ../Doc/tutorial/inputoutput.rst:380
msgid "" msgid ""
@ -509,9 +507,9 @@ msgstr ""
"Sur un fichier en mode texte (ceux ouverts sans ``b`` dans le mode), seuls " "Sur un fichier en mode texte (ceux ouverts sans ``b`` dans le mode), seuls "
"les changements de position relatifs au début du fichier sont autorisés " "les changements de position relatifs au début du fichier sont autorisés "
"(sauf une exception : se rendre à la fin du fichier avec ``seek(0, 2)``) et " "(sauf une exception : se rendre à la fin du fichier avec ``seek(0, 2)``) et "
"les seuls valeurs possible pour le paramètre *offset* sont les valeurs " "les seules valeurs possibles pour le paramètre *decalage* sont les valeurs "
"renvoyées par ``f.tell()``, ou zéro. Toute autre valeur pour le paramètre " "renvoyées par ``f.tell()``, ou zéro. Toute autre valeur pour le paramètre "
"*offset* engendrera un comportement indéfini." "*decalage* produit un comportement indéfini."
#: ../Doc/tutorial/inputoutput.rst:386 #: ../Doc/tutorial/inputoutput.rst:386
msgid "" msgid ""
@ -526,7 +524,7 @@ msgstr ""
#: ../Doc/tutorial/inputoutput.rst:394 #: ../Doc/tutorial/inputoutput.rst:394
msgid "Saving structured data with :mod:`json`" msgid "Saving structured data with :mod:`json`"
msgstr "Sauvegarder des données structurées avec le module :mod:`json`" msgstr "Sauvegarde de données structurées avec le module :mod:`json`"
#: ../Doc/tutorial/inputoutput.rst:398 #: ../Doc/tutorial/inputoutput.rst:398
msgid "" msgid ""
@ -538,12 +536,13 @@ msgid ""
"serializing by hand becomes complicated." "serializing by hand becomes complicated."
msgstr "" msgstr ""
"Les chaînes de caractères peuvent facilement être écrites dans un fichier et " "Les chaînes de caractères peuvent facilement être écrites dans un fichier et "
"relues. Les nombres nécessitent un peu plus d'efforts, car la méthode :meth:" "relues. Les nombres nécessitent un peu plus d'effort, car la méthode :meth:"
"`read` ne renvoie que des chaînes, qui doivent donc être passées à une " "`read` ne renvoie que des chaînes. Elles doivent donc être passées à une "
"fonction comme :func:`int`, qui prend une chaîne comme ``'123'`` en entrée " "fonction comme :func:`int`, qui prend une chaîne comme ``'123'`` en entrée "
"et renvoie sa valeur numérique 123. Mais dès que vous voulez enregistrer des " "et renvoie sa valeur numérique 123. Mais dès que vous voulez enregistrer des "
"types de données plus complexes comme des listes, des dictionnaires ou des " "types de données plus complexes comme des listes, des dictionnaires ou des "
"instances de classes, les choses se compliquent beaucoup plus." "instances de classes, le traitement lecture/écriture à la main devient vite "
"compliqué."
#: ../Doc/tutorial/inputoutput.rst:405 #: ../Doc/tutorial/inputoutput.rst:405
msgid "" msgid ""
@ -558,15 +557,15 @@ msgid ""
"file or data, or sent over a network connection to some distant machine." "file or data, or sent over a network connection to some distant machine."
msgstr "" msgstr ""
"Plutôt que de passer son temps à écrire et déboguer du code permettant de " "Plutôt que de passer son temps à écrire et déboguer du code permettant de "
"sauvegarder des types de données compliquées, Python permet d'utiliser `JSON " "sauvegarder des types de données compliqués, Python permet d'utiliser `JSON "
"(JavaScript Object Notation) <http://json.org>`_, un format répandu de " "(JavaScript Object Notation) <http://json.org>`_, un format répandu de "
"représentation et d'échange de données. Le module standard appellé :mod:" "représentation et d'échange de données. Le module standard appelé :mod:"
"`json` peut transformer des hiérarchies de données Python en leur " "`json` peut transformer des données hiérarchisées Python en une "
"représentation sous forme de chaîne de caractère. Ce processus est nommé :" "représentation sous forme de chaîne de caractères. Ce processus est nommé :"
"dfn:`sérialiser`. Reconstruire les données à partir de leur représentation " "dfn:`sérialiser`. Reconstruire les données à partir de leur représentation "
"sous forme de chaîne est appelé :dfn:`déserialiser`. Entre sa serialisation " "sous forme de chaîne est appelé :dfn:`déserialiser`. Entre sa sérialisation "
"et sa déserialisation, la chaîne représentant les données peuvent avoir été " "et sa dé-sérialisation, la chaîne représentant les données peut avoir été "
"stockées ou transmises à une autre machine." "stockée ou transmise à une autre machine."
#: ../Doc/tutorial/inputoutput.rst:416 #: ../Doc/tutorial/inputoutput.rst:416
msgid "" msgid ""
@ -574,17 +573,17 @@ msgid ""
"exchange. Many programmers are already familiar with it, which makes it a " "exchange. Many programmers are already familiar with it, which makes it a "
"good choice for interoperability." "good choice for interoperability."
msgstr "" msgstr ""
"Le format JSON se retrouve communément dans les applications modernes pour " "Le format JSON est couramment utilisé dans les applications modernes pour "
"échanger des données. Beaucoup de développeurs sont déjà familier avec le " "échanger des données. Beaucoup de développeurs le maîtrise, ce qui en fait "
"JSON, en faisant un format de prédilection pour l'interopérabilité." "un format de prédilection pour l'interopérabilité."
#: ../Doc/tutorial/inputoutput.rst:420 #: ../Doc/tutorial/inputoutput.rst:420
msgid "" msgid ""
"If you have an object ``x``, you can view its JSON string representation " "If you have an object ``x``, you can view its JSON string representation "
"with a simple line of code::" "with a simple line of code::"
msgstr "" msgstr ""
"Si vous avez un objet ``x``, vous pouvez simplement voir sa représentation " "Si vous avez un objet ``x``, vous pouvez voir sa représentation JSON en "
"JSON ::" "tapant simplement : ::"
#: ../Doc/tutorial/inputoutput.rst:427 #: ../Doc/tutorial/inputoutput.rst:427
msgid "" msgid ""
@ -592,10 +591,10 @@ msgid ""
"dump`, simply serializes the object to a :term:`text file`. So if ``f`` is " "dump`, simply serializes the object to a :term:`text file`. So if ``f`` is "
"a :term:`text file` object opened for writing, we can do this::" "a :term:`text file` object opened for writing, we can do this::"
msgstr "" msgstr ""
"Une variation de la fonction :func:`~json.dumps`, nommée :func:`~json.dump`, " "Une variante de la fonction :func:`~json.dumps`, nommée :func:`~json.dump`, "
"sérialise simplement l'objet donné vers un :term:`fichier texte <text " "sérialise simplement l'objet donné vers un :term:`fichier texte <text "
"file>`. Donc si ``f`` est un :term:`fichier texte <text file>` ouvert en " "file>`. Donc si ``f`` est un :term:`fichier texte <text file>` ouvert en "
"écriture, il devient possible de faire : ::" "écriture, il est possible de faire : ::"
#: ../Doc/tutorial/inputoutput.rst:433 #: ../Doc/tutorial/inputoutput.rst:433
msgid "" msgid ""
@ -603,7 +602,7 @@ msgid ""
"been opened for reading::" "been opened for reading::"
msgstr "" msgstr ""
"Pour reconstruire l'objet, si ``f`` est cette fois un :term:`fichier texte` " "Pour reconstruire l'objet, si ``f`` est cette fois un :term:`fichier texte` "
"ouverten lecture : ::" "ouvert en lecture : ::"
#: ../Doc/tutorial/inputoutput.rst:438 #: ../Doc/tutorial/inputoutput.rst:438
msgid "" msgid ""
@ -612,8 +611,8 @@ msgid ""
"effort. The reference for the :mod:`json` module contains an explanation of " "effort. The reference for the :mod:`json` module contains an explanation of "
"this." "this."
msgstr "" msgstr ""
"Cette méthode de serialisation peut sérialiser des listes et des " "Cette méthode de sérialisation peut sérialiser des listes et des "
"dictionnaires, mais sérialiser d'autres types de données nécessité un peu " "dictionnaires. Mais sérialiser d'autres types de données requiert un peu "
"plus de travail. La documentation du module :mod:`json` explique comment " "plus de travail. La documentation du module :mod:`json` explique comment "
"faire." "faire."
@ -630,9 +629,10 @@ msgid ""
"pickle data coming from an untrusted source can execute arbitrary code, if " "pickle data coming from an untrusted source can execute arbitrary code, if "
"the data was crafted by a skilled attacker." "the data was crafted by a skilled attacker."
msgstr "" msgstr ""
"À l'inverse de :ref:`JSON <tut-json>`, *pickle* est un protocole permettant " "Au contraire de :ref:`JSON <tut-json>`, *pickle* est un protocole permettant "
"la serialisation d'objets Python arbitrairement complexes. Il est donc " "la sérialisation d'objets Python arbitrairement complexes. Il est donc "
"spécifique à Python et ne peut être utilisé pour communiquer avec d'autres " "spécifique à Python et ne peut pas être utilisé pour communiquer avec "
"langages. Il n'est aussi pas sans failles : desérialiser des données au " "d'autres langages. Il est aussi, par défaut, une source de vulnérabilité : "
"format pickle provenant d'une source malveillante et particulièrement habile " "dé-sérialiser des données au format pickle provenant d'une source "
"pourrait mener exécuter du code arbitraire." "malveillante et particulièrement habile peut mener à exécuter du code "
"arbitraire."