diff --git a/dict b/dict index e736619401..0d628ed40f 100644 --- a/dict +++ b/dict @@ -5,9 +5,12 @@ C comilla command default +deserialización +deserializar docstring docstrings else +fué if import imprimible @@ -17,17 +20,19 @@ inicializar interactivamente intermezzo iterador +json m -multilínea multi +multilínea option -Python -python +pickle portable posicional posicionales prompt prompts +python +Python readline recompilar ref @@ -35,17 +40,22 @@ referenciada referenciadas referenciado referenciados +referenciarse reordenar s -seguirle -self script scripting scripts seguirle +seguirle +self semánticamente -sintácticamente +serializa +serialización +serializados +serializar shell +sintácticamente situ sockets subíndices @@ -55,5 +65,5 @@ tty tupla tutorial Tutorial -X x +X diff --git a/tutorial/inputoutput.po b/tutorial/inputoutput.po index 17129af1ef..f3d5861892 100644 --- a/tutorial/inputoutput.po +++ b/tutorial/inputoutput.po @@ -3,22 +3,24 @@ # This file is distributed under the same license as the Python package. # FIRST AUTHOR , YEAR. # -#, fuzzy msgid "" msgstr "" "Project-Id-Version: Python 3.7\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2019-05-06 11:59-0400\n" -"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" -"Last-Translator: FULL NAME \n" -"Language-Team: LANGUAGE \n" +"PO-Revision-Date: 2019-05-26 18:58-0300\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" +"Last-Translator: \n" +"Language-Team: es\n" +"Language: es\n" +"X-Generator: Poedit 2.0.6\n" #: ../Doc/tutorial/inputoutput.rst:5 msgid "Input and Output" -msgstr "" +msgstr "Entrada y salida" #: ../Doc/tutorial/inputoutput.rst:7 msgid "" @@ -26,10 +28,14 @@ msgid "" "printed in a human-readable form, or written to a file for future use. This " "chapter will discuss some of the possibilities." msgstr "" +"Hay diferentes métodos de presentar la salida de un programa; los datos " +"pueden ser impresos de una forma legible por humanos, o escritos a un " +"archivo para uso futuro. Este capítulo discutirá algunas de las " +"posibilidades." #: ../Doc/tutorial/inputoutput.rst:15 msgid "Fancier Output Formatting" -msgstr "" +msgstr "Formateo elegante de la salida" #: ../Doc/tutorial/inputoutput.rst:17 msgid "" @@ -38,6 +44,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 "" +"Hasta ahora encontramos dos maneras de escribir valores: *declaraciones de " +"expresión* y la función :func:`print`. (Una tercer manera es usando el " +"método :func:`write` de los objetos tipo archivo; el archivo de salida " +"estándar puede referenciarse como ``sys.stdout``. Mirá la Referencia de la " +"Biblioteca para más información sobre esto.)" #: ../Doc/tutorial/inputoutput.rst:22 msgid "" @@ -45,6 +56,9 @@ msgid "" "simply printing space-separated values. There are several ways to format " "output." msgstr "" +"Frecuentemente querrás más control sobre el formateo de tu salida que " +"simplemente imprimir valores separados por espacios. Hay varias maneras de " +"formatear tu salida." #: ../Doc/tutorial/inputoutput.rst:25 msgid "" @@ -53,6 +67,10 @@ msgid "" "Inside this string, you can write a Python expression between ``{`` and ``}" "`` characters that can refer to variables or literal values." msgstr "" +"Para usar :ref:`formatted string literals `, empezar una " +"cadena con ``f`` o ``F`` antes de abrir la comilla o la comilla triple. " +"Dentro de la cadena, puede escribir expresiones Python entre los caracteres " +"``{`` y ``}`` que pueden referirse a variables o valores literales." #: ../Doc/tutorial/inputoutput.rst:37 msgid "" @@ -61,6 +79,10 @@ msgid "" "substituted and can provide detailed formatting directives, but you'll also " "need to provide the information to be formatted." msgstr "" +"El método :meth:`str.format` de las cadenas requiere un mayor esfuerzo " +"manual. Todavía usará ``{`` y ``}`` para marcar dónde las variables serán " +"sustituidas y puede brindar directivas de formateo más detalladas, pero " +"deberá también proveer la información a ser formateada." #: ../Doc/tutorial/inputoutput.rst:50 msgid "" @@ -69,6 +91,10 @@ msgid "" "string type has some methods that perform useful operations for padding " "strings to a given column width." msgstr "" +"Finalmente puede hacer todo el manejo de las cadenas usted mismo: usando " +"rebanado de cadenas y operaciones de concatenado puede crear cualquier forma " +"que puedas imaginar. El tipo `string` contiene algunos métodos útiles para " +"emparejar cadenas a un determinado ancho; estas las discutiremos en breve." #: ../Doc/tutorial/inputoutput.rst:55 msgid "" @@ -76,6 +102,9 @@ msgid "" "variables for debugging purposes, you can convert any value to a string with " "the :func:`repr` or :func:`str` functions." msgstr "" +"Cuando no necesita una salida elegante y sólo desea una forma rápida de ver " +"algunas variables para depuración, puede convertir cualquier valor en una " +"cadena usando las funciones :func:`repr` o :func:`str`." #: ../Doc/tutorial/inputoutput.rst:59 msgid "" @@ -88,10 +117,19 @@ msgid "" "structures like lists and dictionaries, have the same representation using " "either function. Strings, in particular, have two distinct representations." msgstr "" +"La función :func:`str` devuelve representaciones de los valores que son " +"bastante legibles por humanos, mientras que :func:`repr` genera " +"representaciones que pueden ser leídas por el el intérprete (o forzarían un :" +"exc:`SyntaxError` si no hay sintaxis equivalente). Para objetos que no " +"tienen una representación en particular para consumo humano, :func:`str` " +"devolverá el mismo valor que :func:`repr`. Muchos valores, como números o " +"estructuras como listas y diccionarios, tienen la misma representación " +"usando cualquiera de las dos funciones. Las cadenas, en particular, tienen " +"dos representaciones distintas." #: ../Doc/tutorial/inputoutput.rst:68 msgid "Some examples::" -msgstr "" +msgstr "Algunos ejemplos::" #: ../Doc/tutorial/inputoutput.rst:91 msgid "" @@ -100,10 +138,14 @@ msgid "" "like ``$x`` and replacing them with values from a dictionary, but offers " "much less control of the formatting." msgstr "" +"El módulo :mod:`string` contiene la clase :class:`~string.Template` la cual " +"ofrece otra forma de sustituir valores en las cadenas, usando comodines como " +"``$x`` y reemplazándolos con valores desde un diccionario, pero ofrece mucho " +"menos control sobre el formateo." #: ../Doc/tutorial/inputoutput.rst:100 msgid "Formatted String Literals" -msgstr "" +msgstr "Cadenas de formato literales" #: ../Doc/tutorial/inputoutput.rst:102 msgid "" @@ -112,6 +154,10 @@ msgid "" "prefixing the string with ``f`` or ``F`` and writing expressions as " "``{expression}``." msgstr "" +":ref:`Formatted string literals ` (llamadas también *f-strings* " +"como abreviatura) le deja incluir valores de expresiones Python dentro de la " +"cadena agregando como prefijo a la misma ``f`` o ``F`` y escribiendo las " +"expresiones como ``{expresión}``." #: ../Doc/tutorial/inputoutput.rst:107 msgid "" @@ -119,12 +165,18 @@ msgid "" "control over how the value is formatted. The following example rounds pi to " "three places after the decimal::" msgstr "" +"Una especificación de formato opcional puede seguir a la expresión. Esto " +"permite tener mayor control sobre cómo el valor es formateado. Los " +"siguientes ejemplos redondean pi a tres dígitos después de la coma decimal::" #: ../Doc/tutorial/inputoutput.rst:115 msgid "" "Passing an integer after the ``':'`` will cause that field to be a minimum " "number of characters wide. This is useful for making columns line up. ::" msgstr "" +"Pasar un entero después del ``':'`` provocarán que el campo tenga un mínimo " +"de caracteres de ancho. Esto es útil para hacer que las columnas se " +"alineen. ::" #: ../Doc/tutorial/inputoutput.rst:126 msgid "" @@ -132,20 +184,25 @@ msgid "" "a'`` applies :func:`ascii`, ``'!s'`` applies :func:`str`, and ``'!r'`` " "applies :func:`repr`::" msgstr "" +"Otros modificadores pueden ser usados para convertir los valores antes de " +"ser formateados. `'!a'`` aplica la :func:`ascii`, ``'!s'`` aplica la :func:" +"`str`, y ``'!r'`` aplica la :func:`repr`::" #: ../Doc/tutorial/inputoutput.rst:136 msgid "" "For a reference on these format specifications, see the reference guide for " "the :ref:`formatspec`." msgstr "" +"Para referencia sobre éstas especificaciones de formato, vea la guía de " +"referencia para :ref:`formatspec`." #: ../Doc/tutorial/inputoutput.rst:142 msgid "The String format() Method" -msgstr "" +msgstr "El método de cadenas :meth:`format`" #: ../Doc/tutorial/inputoutput.rst:144 msgid "Basic usage of the :meth:`str.format` method looks like this::" -msgstr "" +msgstr "El uso básico del método :meth:`str.format` es como esto::" #: ../Doc/tutorial/inputoutput.rst:149 msgid "" @@ -154,16 +211,23 @@ msgid "" "brackets can be used to refer to the position of the object passed into the :" "meth:`str.format` method. ::" msgstr "" +"Las llaves y caracteres dentro de las mismas (llamados campos de formato) " +"son reemplazadas con los objetos pasados en el método :meth:`str.format`. Un " +"número en las llaves se refiere a la posición del objeto pasado en el " +"método. ::" #: ../Doc/tutorial/inputoutput.rst:159 msgid "" "If keyword arguments are used in the :meth:`str.format` method, their values " "are referred to by using the name of the argument. ::" msgstr "" +"Si se usan argumentos nombrados en el método :meth:`str.format`, sus valores " +"serán referidos usando el nombre del argumento.::" #: ../Doc/tutorial/inputoutput.rst:166 msgid "Positional and keyword arguments can be arbitrarily combined::" msgstr "" +"Se pueden combinar arbitrariamente argumentos posicionales y nombrados::" #: ../Doc/tutorial/inputoutput.rst:172 msgid "" @@ -172,44 +236,62 @@ msgid "" "instead of by position. This can be done by simply passing the dict and " "using square brackets ``'[]'`` to access the keys ::" msgstr "" +"Si tienes una cadena de formateo realmente larga que no quieres separar, " +"podría ser bueno que puedas hacer referencia a las variables a ser " +"formateadas por el nombre en vez de la posición. Esto puede hacerse " +"simplemente pasando el diccionario y usando corchetes ``'[]'`` para acceder " +"a las claves::" #: ../Doc/tutorial/inputoutput.rst:182 msgid "" "This could also be done by passing the table as keyword arguments with the " "'**' notation. ::" msgstr "" +"Esto también puede hacerse pasando la tabla de argumentos nombrados con la " +"notación '**'. ::" #: ../Doc/tutorial/inputoutput.rst:189 msgid "" "This is particularly useful in combination with the built-in function :func:" "`vars`, which returns a dictionary containing all local variables." msgstr "" +"Esto es particularmente útil en combinación con la función integrada :func:" +"`vars`, la cual retorna un diccionario que contiene todas las variables " +"locales." #: ../Doc/tutorial/inputoutput.rst:192 msgid "" "As an example, the following lines produce a tidily-aligned set of columns " "giving integers and their squares and cubes::" msgstr "" +"Como ejemplo, las siguientes líneas producen un conjunto de datos " +"prolijamente alineados de enteros, sus cuadrados y cubos::" #: ../Doc/tutorial/inputoutput.rst:209 msgid "" "For a complete overview of string formatting with :meth:`str.format`, see :" "ref:`formatstrings`." msgstr "" +"Para una revisión completa de cadenas de formato con el método :meth:`str." +"format`, vea :ref:`formatstrings`." #: ../Doc/tutorial/inputoutput.rst:214 msgid "Manual String Formatting" -msgstr "" +msgstr "Formateo manual de cadenas" #: ../Doc/tutorial/inputoutput.rst:216 msgid "Here's the same table of squares and cubes, formatted manually::" msgstr "" +"Aquí esta la misma tabla de cuadrados y cubos, formateada manualmente::" #: ../Doc/tutorial/inputoutput.rst:234 msgid "" "(Note that the one space between each column was added by the way :func:" "`print` works: it always adds spaces between its arguments.)" msgstr "" +"(Note que un espacio separando cada una de las columnas fué agregado por la " +"forma en que la función :func:`print` trabaja: siempre agrega espacios entre " +"los argumentos)" #: ../Doc/tutorial/inputoutput.rst:237 msgid "" @@ -222,16 +304,27 @@ msgid "" "would be lying about a value. (If you really want truncation you can always " "add a slice operation, as in ``x.ljust(n)[:n]``.)" msgstr "" +"El método :meth:`str.rjust` de los objetos cadena, el cual alinea una cadena " +"a la derecha en un campo del ancho dado llenándolo con espacios a la " +"izquierda. Hay métodos similares :meth:`str.ljust` y :meth:`str.center`. " +"Estos métodos no escriben nada, sólo devuelven una nueva cadena. Si la " +"cadena de entrada es demasiado larga, no la truncan, sino la devuelven " +"intacta; esto te romperá la alineación de tus columnas pero es normalmente " +"mejor que la alternativa, que estaría mintiendo sobre el valor. (Si " +"realmente querés que se recorte, siempre puede agregarle una operación de " +"rebanado, como en ``x.ljust(n)[:n]``.)" #: ../Doc/tutorial/inputoutput.rst:246 msgid "" "There is another method, :meth:`str.zfill`, which pads a numeric string on " "the left with zeros. It understands about plus and minus signs::" msgstr "" +"Hay otro método, :meth:`str.zfill`, el cual rellena una cadena numérica a la " +"izquierda con ceros. Entiende signos positivos y negativos:" #: ../Doc/tutorial/inputoutput.rst:258 msgid "Old string formatting" -msgstr "" +msgstr "Viejo formateo de cadenas" #: ../Doc/tutorial/inputoutput.rst:260 msgid "" @@ -240,21 +333,28 @@ msgid "" "applied to the right argument, and returns the string resulting from this " "formatting operation. For example::" msgstr "" +"El operador ``%`` también puede usarse para formateo de cadenas. Interpreta " +"el argumento de la izquierda con el estilo de formateo de :c:func:`sprintf` " +"para ser aplicado al argumento de la derecha, y devuelve la cadena " +"resultante de esta operación de formateo. Por ejemplo::" #: ../Doc/tutorial/inputoutput.rst:269 msgid "" "More information can be found in the :ref:`old-string-formatting` section." msgstr "" +"Puede encontrar más información en la sección :ref:`old-string-formatting`." #: ../Doc/tutorial/inputoutput.rst:275 msgid "Reading and Writing Files" -msgstr "" +msgstr "Leyendo y escribiendo archivos" #: ../Doc/tutorial/inputoutput.rst:281 msgid "" ":func:`open` returns a :term:`file object`, and is most commonly used with " "two arguments: ``open(filename, mode)``." msgstr "" +"La función :func:`open` devuelve un objeto :term:`file object`, y se usa " +"normalmente con dos argumentos: ``open(filename, mode)``." #: ../Doc/tutorial/inputoutput.rst:293 msgid "" @@ -267,6 +367,15 @@ msgid "" "reading and writing. The *mode* argument is optional; ``'r'`` will be " "assumed if it's omitted." msgstr "" +"El primer argumento es una cadena conteniendo el nombre de archivo. El " +"segundo argumento es otra cadena conteniendo unos pocos caracteres que " +"describen la forma en que el archivo será usado. El modo puede ser ``'r'`` " +"cuando el archivo será solamente leído, ``'w'``para sólo escribirlo (un " +"archivo existente con el mismo nombre será borrado), y ``'a'`` abre el " +"archivo para agregarle información; cualquier dato escrito al archivo será " +"automáticamente agregado al final. ``'r+'`` abre el archivo tanto para " +"leerlo como para escribirlo. El argumento *modo* es opcional; si se omite se " +"asume ``'r'``." #: ../Doc/tutorial/inputoutput.rst:302 msgid "" @@ -277,6 +386,13 @@ 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 "" +"Normalmente los archivos se abren en :dfn:`modo texto`, lo que significa que " +"puedes leer y escribir cadenas desde y hacia el archivo, las cuales se " +"codifican utilizando un código específico. Si el código no es especificado, " +"el valor predeterminado depende de la plataforma (vea :func:`open`). Si se " +"agrega ``'b'`` al modo el archivo se abre en modo binario: ahora los datos " +"se leen y escriben en forma de objetos bytes. Se debería usar este modo para " +"todos los archivos que no contengan texto." #: ../Doc/tutorial/inputoutput.rst:309 msgid "" @@ -288,6 +404,13 @@ msgid "" "file:`JPEG` or :file:`EXE` files. Be very careful to use binary mode when " "reading and writing such files." msgstr "" +"Cuando se lee en modo texto, por defecto se convierten los fines de lineas " +"que son específicos a las plataformas (``\\n`` en Unix, ``\\r\\n`` en " +"Windows) a solamente ``\\r``. Cuando se escribe en modo texto, por defecto " +"se convierten los ``\\n`` a los finales de linea específicos de la " +"plataforma. Este cambio automático está bien para archivos de texto, pero " +"corrompería datos binarios como los de archivos :file:`JPEG` o :file:`EXE` . " +"Asegurate de usar modo binario cuando leas y escribas tales archivos." #: ../Doc/tutorial/inputoutput.rst:317 msgid "" @@ -297,6 +420,11 @@ msgid "" "keyword:`!with` is also much shorter than writing equivalent :keyword:`try`" "\\ -\\ :keyword:`finally` blocks::" msgstr "" +"Es una buena práctica usar la declaración :keyword:`with` cuando manejamos " +"objetos archivo. Tiene la ventaja que el archivo es cerrado apropiadamente " +"luego de que el bloque termina, incluso si se generó una excepción. También " +"es mucho más corto que escribir los equivalentes bloques :keyword:`try`\\ -" +"\\ :keyword:`finally`::" #: ../Doc/tutorial/inputoutput.rst:328 msgid "" @@ -307,6 +435,13 @@ msgid "" "file may stay open for a while. Another risk is that different Python " "implementations will do this clean-up at different times." msgstr "" +"Si no estuvieses usando el bloque :keyword:`with`, entonces deberías llamar " +"``f.close()`` para cerrar el archivo e inmediatamente liberar cualquier " +"recurso del sistema usado por este. Si no cierras explícitamente el archivo, " +"el `garbage collector` de Python eventualmente destruirá el objeto y cerrará " +"el archivo por usted, pero el archivo puede estar abierto por un tiempo. " +"Otro riesgo es que diferentes implementaciones de Python hagan esta limpieza " +"en diferentes momentos." #: ../Doc/tutorial/inputoutput.rst:336 msgid "" @@ -314,16 +449,21 @@ msgid "" "calling ``f.close()``, attempts to use the file object will automatically " "fail. ::" msgstr "" +"Después de que un objeto de archivo es cerrado, ya sea por :keyword:`with` o " +"llamando a ``f.close()``, intentar volver a utilizarlo fallará " +"automáticamente::" #: ../Doc/tutorial/inputoutput.rst:350 msgid "Methods of File Objects" -msgstr "" +msgstr "Métodos de los objetos Archivo" #: ../Doc/tutorial/inputoutput.rst:352 msgid "" "The rest of the examples in this section will assume that a file object " "called ``f`` has already been created." msgstr "" +"El resto de los ejemplos en esta sección asumirán que ya se creó un objeto " +"archivo llamado ``f``." #: ../Doc/tutorial/inputoutput.rst:355 msgid "" @@ -335,6 +475,14 @@ 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 "" +"Para leer el contenido de una archivo llamá a ``f.read(size)``, el cual lee " +"alguna cantidad de datos y los devuelve como una cadena (en modo texto) o un " +"objeto de bytes (en modo binario). «*Size*» es un argumento numérico " +"opcional. Cuando se omite o es negativo, el contenido entero del archivo " +"será leído y devuelto; es tu problema si el archivo es el doble de grande " +"que la memoria de tu máquina. De otra manera, a lo sumo una cantidad de " +"bytes son leídos y devueltos. Si se alcanzó el fin del archivo, ``f.read()`` " +"devolverá una cadena vacía (``''``). ::" #: ../Doc/tutorial/inputoutput.rst:369 msgid "" @@ -345,30 +493,45 @@ msgid "" "end of the file has been reached, while a blank line is represented by " "``'\\n'``, a string containing only a single newline. ::" msgstr "" +"``f.readline()`` lee una sola linea del archivo; el carácter de fin de linea " +"(``\\n``) se deja al final de la cadena, y sólo se omite en la última linea " +"del archivo si el mismo no termina en un fin de linea. Esto hace que el " +"valor de retorno no sea ambiguo; si ``f.readline()`` devuelve una cadena " +"vacía, es que se alcanzó el fin del archivo, mientras que una linea en " +"blanco es representada por ``'\\n'``, una cadena conteniendo sólo un único " +"fin de linea. ::" #: ../Doc/tutorial/inputoutput.rst:383 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 "" +"Para leer líneas de un archivo, puedes iterar sobre el objeto archivo. Esto " +"es eficiente en memoria, rápido, y conduce a un código más simple::" #: ../Doc/tutorial/inputoutput.rst:392 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 "" +"Si querés leer todas las líneas de un archivo en una lista también puedes " +"usar ``list(f)`` o ``f.readlines()``." #: ../Doc/tutorial/inputoutput.rst:395 msgid "" "``f.write(string)`` writes the contents of *string* to the file, returning " "the number of characters written. ::" msgstr "" +"``f.write(string)`` escribe el contenido del *``string``* al archivo, " +"devolviendo la cantidad de caracteres escritos. ::" #: ../Doc/tutorial/inputoutput.rst:401 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 "" +"Otros tipos de objetos necesitan ser convertidos – tanto a una cadena (en " +"modo texto) o a un objeto de bytes (en modo binario) – antes de escribirlos::" #: ../Doc/tutorial/inputoutput.rst:409 msgid "" @@ -376,6 +539,9 @@ msgid "" "the file represented as number of bytes from the beginning of the file when " "in binary mode and an opaque number when in text mode." msgstr "" +"``f.tell()`` devuelve un entero que indica la posición actual en el archivo " +"representada como número de bytes desde el comienzo del archivo en modo " +"binario y un número oscuro en modo texto." #: ../Doc/tutorial/inputoutput.rst:413 msgid "" @@ -387,6 +553,13 @@ msgid "" "*from_what* can be omitted and defaults to 0, using the beginning of the " "file as the reference point. ::" msgstr "" +"Para cambiar la posición del objeto archivo, use ``f.seek(desplazamiento, " +"desde_donde)``. La posición es calculada agregando el desplazamiento a un " +"punto de referencia; el punto de referencia se selecciona del argumento " +"desde_donde. Un valor desde_donde de 0 mide desde el comienzo del archivo, 1 " +"usa la posición actual del archivo, y 2 usa el fin del archivo como punto de " +"referencia. desde_donde puede omitirse, por defecto es 0, usando el comienzo " +"del archivo como punto de referencia. ::" #: ../Doc/tutorial/inputoutput.rst:432 msgid "" @@ -396,6 +569,12 @@ msgid "" "*offset* values are those returned from the ``f.tell()``, or zero. Any other " "*offset* value produces undefined behaviour." msgstr "" +"En los archivos de texto (aquellos que se abrieron sin una ``b`` en el " +"modo), se permiten solamente desplazamientos con `seek` relativos al " +"comienzo (con la excepción de ir justo al final con ``seek(0, 2)``) y los " +"únicos valores de desplazamiento válidos son aquellos retornados por ``f." +"tell()``, o cero. Cualquier otro valor de desplazamiento produce un " +"comportamiento indefinido." #: ../Doc/tutorial/inputoutput.rst:438 msgid "" @@ -403,10 +582,13 @@ msgid "" "meth:`~file.truncate` which are less frequently used; consult the Library " "Reference for a complete guide to file objects." msgstr "" +"Los objetos archivo tienen algunos métodos más, como :meth:`~file.isatty` y :" +"meth:`~file.truncate` que son usados menos frecuentemente; consultá la " +"Referencia de la Biblioteca para una guía completa sobre los objetos archivo." #: ../Doc/tutorial/inputoutput.rst:446 msgid "Saving structured data with :mod:`json`" -msgstr "" +msgstr "Guardar datos estructurados con :mod:`json`" #: ../Doc/tutorial/inputoutput.rst:450 msgid "" @@ -417,6 +599,12 @@ msgid "" "complex data types like nested lists and dictionaries, parsing and " "serializing by hand becomes complicated." msgstr "" +"Las cadenas pueden fácilmente escribirse y leerse de un archivo. Los números " +"toman algo más de esfuerzo, ya que el método :meth:`read` sólo devuelve " +"cadenas, que tendrán que ser pasadas a una función como :func:`int`, que " +"toma una cadena como ``'123'`` y devuelve su valor numérico 123. Sin " +"embargo, cuando quieras grabar tipos de datos más complejos como listas, " +"diccionarios, o instancias de clases, las cosas se ponen más complicadas." #: ../Doc/tutorial/inputoutput.rst:457 msgid "" @@ -430,6 +618,17 @@ msgid "" "deserializing, the string representing the object may have been stored in a " "file or data, or sent over a network connection to some distant machine." msgstr "" +"En lugar de tener a los usuarios constantemente escribiendo y depurando " +"código para grabar tipos de datos complicados, Python te permite usar " +"formato intercambiable de datos popular llamado `JSON \"\n" +"\"(JavaScript Object Notation) `_. El módulo estándar " +"llamado :mod:`json` puede tomar datos de Python con una jerarquía, y " +"convertirlo a representaciones de cadena de caracteres; este proceso es " +"llamado :dfn:`serialización`. Reconstruir los datos desde la representación " +"de cadena de caracteres es llamado :dfn:`deserialización`. Entre " +"serialización y deserialización, la cadena de caracteres representando el " +"objeto quizás se haya guardado en un archivo o base de datos, o enviado a " +"una máquina distante por una conexión de red." #: ../Doc/tutorial/inputoutput.rst:468 msgid "" @@ -437,12 +636,17 @@ msgid "" "exchange. Many programmers are already familiar with it, which makes it a " "good choice for interoperability." msgstr "" +"El formato JSON es comúnmente usado por aplicaciones modernas para permitir " +"intercambiar datos. Muchos programadores están familiarizados con este, lo " +"que lo hace una buena elección por su interoperatividad." #: ../Doc/tutorial/inputoutput.rst:472 msgid "" "If you have an object ``x``, you can view its JSON string representation " "with a simple line of code::" msgstr "" +"Si tienes un objeto ``x``, puedes ver su representación JSON con una simple " +"línea de código::" #: ../Doc/tutorial/inputoutput.rst:479 msgid "" @@ -450,12 +654,17 @@ 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 "" +"Otra variante de la función :func:`~json.dumps`, llamada :func:`~json.dump`, " +"simplemente serializa el objeto a un archivo de texto. Así que, si ``f`` es " +"un objeto :term:`archivo de texto` abierto para escritura, podemos hacer::" #: ../Doc/tutorial/inputoutput.rst:485 msgid "" "To decode the object again, if ``f`` is a :term:`text file` object which has " "been opened for reading::" msgstr "" +"Para decodificar un objeto nuevamente, si ``f`` es un objeto :term:`archivo " +"de texto` que fue abierto para lectura:" #: ../Doc/tutorial/inputoutput.rst:490 msgid "" @@ -464,10 +673,14 @@ msgid "" "effort. The reference for the :mod:`json` module contains an explanation of " "this." msgstr "" +"La simple técnica de serialización puede manejar listas y diccionarios, pero " +"serializar instancias de clases arbitrarias en JSON requiere un poco de " +"esfuerzo extra. La referencia del módulo json contiene una explicación de " +"esto." #: ../Doc/tutorial/inputoutput.rst:496 msgid ":mod:`pickle` - the pickle module" -msgstr "" +msgstr ":mod:`pickle` - el módulo pickle" #: ../Doc/tutorial/inputoutput.rst:498 msgid "" @@ -478,3 +691,10 @@ msgid "" "pickle data coming from an untrusted source can execute arbitrary code, if " "the data was crafted by a skilled attacker." msgstr "" +"Contrariamente a :ref:`JSON `, *pickle* es un protocolo que " +"permite la serialización de arbitrariamente objetos complejos de Python. Por " +"lo tanto, este es específico de Python y no puede ser usado para comunicarse " +"con aplicaciones escritas en otros lenguajes. Es inseguro por defecto: " +"deserializar datos que fueron serializados con *pickle* desde fuentes " +"inseguras puede ejecutar código arbitrario, si los datos fueron " +"interceptados por un atacante experto."