Varias veces aquí, en SO, he visto a personas usar modos rty wtpara leer y escribir archivos.
Por ejemplo:
with open('input.txt', 'rt') as input_file:
with open('output.txt', 'wt') as output_file:
...
No veo los modos documentados , pero dado open()que no arroja un error, parece que su uso es bastante legal.
¿Para qué sirve y hay alguna diferencia entre usar wtvs wy rtvs r?
python
file
file-io
read-write
Alecxe
fuente
fuente

wtvswyrtvsr-explicit is better than implicit¿ solo ?ryrt...wno siempre es igual awt. Uno de esos casos esgzip.opendonde el modo binario es el predeterminado y no el modo texto. Pregunta relacionada: stackoverflow.com/questions/42013083/…El
tindica el modo de texto, lo que significa que\ncaracteres se traducirán a las terminaciones de línea del sistema operativo del host al escribir en un archivo y de nuevo al leer. La bandera es básicamente ruido, ya que el modo de texto es el predeterminado.Aparte de
Ueso, esos indicadores de modo provienen directamente de lafopen()función de la biblioteca C estándar , un hecho que se documenta en el sexto párrafo de la documentación de python2 paraopen().Hasta donde yo sé,
tno es y nunca ha sido parte del estándar C, por lo que aunque muchas implementaciones de la biblioteca C lo aceptan de todos modos, no hay garantía de que todas lo hagan y, por lo tanto, no hay garantía de que funcione en cada compilación de pitón. Eso explica por qué los documentos de python2 no lo enumeraron y por qué en general funcionó de todos modos. Los documentos de python3 lo hacen oficial.fuente
La 'r' es para leer, la 'w' para escribir y la 'a' es para agregar.
La 't' representa el modo de texto en oposición al modo binario.
Editar: ¿Estás seguro de que viste rt y no rb?
Estas funciones generalmente envuelven la función fopen que se describe aquí:
http://www.cplusplus.com/reference/cstdio/fopen/
Como puede ver, menciona el uso de b para abrir el archivo en modo binario.
El enlace del documento que proporcionó también hace referencia a este modo b:
Agregar 'b' es útil incluso en sistemas que no tratan los archivos binarios y de texto de manera diferente, donde sirve como documentación.
fuente
rt, por ejemplo, stackoverflow.com/questions/10971033/… , o stackoverflow.com/questions/17127853/… etc. Gracias por la información, es bueno saberlo.tindica paratext modehttps://docs.python.org/release/3.1.5/library/functions.html#open
en Linux, no hay diferencia entre el modo de texto y el modo binario, sin embargo, en Windows, se convierte
\nal\r\nmodo de texto cuando.http://www.cygwin.com/cygwin-ug-net/using-textbinary.html
fuente
readdevuelve cadenas Unicode. En modo binario,readdevuelve unabytesinstancia. Si desea escribir código Python 2 teniendo en cuenta la compatibilidad con versiones posteriores, puede usar enio.openlugar del estándaropenpara obtener el comportamiento de Python 3 (con instanciasunicodeversusstr).