1
0
Fork 0

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
1 changed files with 142 additions and 142 deletions

View File

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