Cómo realizar operaciones de entrada/salida de Python en archivos con la función Open Python
- 3270
- 252
- Sr. Eduardo Menchaca
La manipulación de archivos es una operación que tarde o temprano tendremos que realizar en nuestros programas. El pitón incorporado abierto
la función devuelve un archivo de archivo
, que nos permite interactuar con archivos en diferentes modos: los veremos en este artículo.
En este tutorial de Python aprenderá:
- Cómo usar la función de Python Open.
- ¿Cuáles son los diversos modos de operación que se pueden utilizar con la función abierta de Python?.
- Cómo interactuar con un objeto de archivo.
- Por qué es importante cerrar un objeto de archivo y cómo hacerlo.
Requisitos y convenciones de software utilizados
Categoría | Requisitos, convenciones o versión de software utilizada |
---|---|
Sistema | INDEPENDO DEL OS |
Software | python3 |
Otro | No se requieren permisos especiales. |
Convenciones | # - requiere que los comandos de Linux dados se ejecuten con privilegios raíz directamente como un usuario raíz o mediante el uso de sudo dominiops - Requiere que los comandos de Linux dados se ejecuten como un usuario regular no privilegiado >>> - Python se ejecutará en un shell interactivo |
Declaraciones de entrada y salida de Python
Hay muchas razones por las que un programa podría necesitar interactuar con los archivos: lectura de configuraciones y configuraciones que influirán en el comportamiento del programa en sí, o tal vez persistentes de datos. En este tutorial veremos cómo realizar tales tareas, utilizando la función de Python Open e interactuando con Archivo de objetos
.
La función de Python Open
Antes de comenzar a leer o escribir archivos, necesitamos aprender cómo podemos acceder a ellos. La función abierta de Python abre un archivo y devuelve un archivo de archivo
, elevando un Oserror
excepción si no se puede acceder al recurso. La función solo tiene un argumento obligatorio, archivo
, que es la cadena o objeto de byte que representa la ruta del archivo que se abrirá:
>>> fobject = open ('LinuxConfig.TXT')
Copiar Modo de lectura - 'R'
Abrimos el LinuxConfig.TXT
archivo, y el objeto de archivo resultante ahora se hace referencia a fobjeto
. Es una pitón objeto de archivo
que implementa métodos como escribir
y leer
. ¿Qué pasa si el LinuxConfig.TXT
El archivo no existía? A FilenotfoundError
Se plantearía la excepción:
>>> fobject = open ('LinuxConfig.Txt ') traza (la última llamada reciente): archivo "", línea 1, en FileNotFoundError: [Errno 2] No hay dicho archivo o directorio: 'LinuxConfig.TXT'
Copiar Como acabamos de decir anteriormente, el único argumento obligatorio de la función abierta de Python es archivo
. Cuando se usa como en el ejemplo anterior, la función funciona en modo de texto
y se abre un archivo solo para leer. El equivalente detallado de lo que hicimos anteriormente es:
>>> fobject = open ('LinuxConfig.txt ',' rt ')
Copiar El segundo argumento de la función es el modo
. En este caso, 'RT'
, donde el 'r'
representa leer
y el 'T'
Especifica que estamos operando en modo de texto. También es posible abrir archivos en modo binario, reemplazando 'T'
con 'b'
: En este caso, el contenido de bytes, sin que se devuelva la codificación. Desde 'T'
es el modo predeterminado, a partir de ahora, lo omitiremos. Para leer el contenido del archivo que podemos usar, por ejemplo, el leer
método. Devolverá todo el contenido del archivo como una cadena:
>>> fobject.read () 'LinuxConfig es increíble!\norte'
Copiar Cuando operan en modo de lectura, cualquier intento de escribir en el archivo aumentará un IO.Operación no compatible
excepción:
>>> fobject.Write ('LinuxConfig es increíble!') TraceBack (la llamada más reciente la última): archivo "", línea 1, en IO.Operación no compatible: no es escrito
Copiar Obviamente, este no es el único modo disponible. Veamos a los otros.
Modo de escritura - 'W'
Al especificar 'W'
como el valor del modo
argumento del abierto
función, si el archivo existe, es primero truncado
(Se descarta todo su contenido) y luego se abre para escribir; Si el archivo no existe, se crea. En este caso usamos el escribir
Método del objeto de archivo:
>>> fobject = open ('LinuxConfig.txt ',' w ') >>> fobject.escribir ('acabamos de escribir en el archivo!') 26 >>> fobject.cerca()
Copiar Abrimos el archivo para escribir, que usamos el escribir
Método del objeto de archivo, que escribe la cadena y devuelve el número de caracteres escritos, 26 En este caso, finalmente utilizamos el cerca
Método para cerrar el objeto: este paso es realmente importante, ya que la operación de escritura se vuelve efectiva solo una vez que el contenido del archivo está enjuagado (veremos la importancia de cerrar un objeto de archivo al final del tutorial). Si ahora examinamos el contenido del archivo, vemos que su contenido anterior ha sido sobrescribido y solo contiene la cadena:
'Acabamos de escribir en el archivo!'
Como sucedió anteriormente, si intentamos realizar una operación no permitida por el modo de operación, se plantea una excepción. En este caso, si intentamos leer el contenido del archivo, obtenemos el siguiente resultado:
>>> fobject = open ('LinuxConfig.txt ',' w ') >>> fobject.read () traza (la llamada más reciente la última): archivo "", línea 1, en io.Operación no compatible: no legible
Copiar Agregar a un archivo: 'A' Modo
¿Qué pasa si queremos agregar a un archivo, manteniendo su contenido actual?? Tenemos que usar el 'a'
(agregar) modo. Cuando se usa este modo, si existe un archivo, se abre para escribir y la transmisión se coloca al final. De esta manera, se conservará el contenido anterior del archivo. Si el archivo no existe, se crea:
>>> fobject = open ('LinuxConfig.txt ',' a ') >>> fobject.escribir ('texto adjunto!') 14 >>> fobject.cerca()
Copiar Abrimos el archivo en 'a'
modo, y escriba la cadena 'texto adjunto' en el archivo. El contenido anterior no ha sido truncado:
LinuxConfig es increíble! Texto adjunto!
El modo 'X' - Creación exclusiva
Este modo de apertura solo está disponible en Python3. Cuando se usa, un FileExisterRor
Se plantea si el archivo ya existe. Si el archivo no existe, se crea y se abre para escribir:
fileObject = Open ('LinuxConfig.Txt ',' x ') traza (la última llamada reciente): archivo "", línea 1, en FileExistsError: [Errno 17] El archivo existe: 'LinuxConfig.TXT'
Copiar Cada vez que escribimos algo, se adjunta al contenido anterior, hasta que cerremos el objeto del archivo:
>>> fileObject = Open ('LinuxConfig1.txt ',' x ') >>> fileObject.Write ('LinuxConfig es increíble de nuevo \ n') >>> fileObject.escribir ('Repito: LinuxConfig es increíble!\ n ') >>> fileObject.cerca()
Copiar Después de ejecutar el código anterior, el nuevo contenido del archivo será:
LinuxConfig es increíble! Repito: LinuxConfig es increíble!
El personaje '+'
Vimos los modos básicos que se pueden usar con el abierto
función y cómo funcionan. Por agregar el '+'
personaje para cada uno de ellos, podemos obtener nuevos comportamientos.
El modo 'R+'
Al agregar el carácter '+' al modo 'R' ('R+'), se abre un archivo tanto para leer como para escribir; Se plantea una excepción si el archivo no existe. La transmisión se coloca al comienzo del archivo, por lo que si se escribe algo, anulará el contenido anterior. Si estamos en este modo, pero aún así queremos que se agregue el nuevo contenido, reservando el existente, debemos cambiar la posición actual utilizando el buscar
Método del objeto de archivo antes de escribir, de la siguiente manera:
>>> fileObject = Open ('LinuxConfig.txt ',' r+'): >>> fileObject.buscar (0,2) >>> fileObject.escribir ('este texto se agregará') >>> fileObject.cerca()
Copiar El buscar
El método toma dos argumentos: el primero es el compensar
, la segunda es la posición desde la cual se debe calcular el desplazamiento, donde 0
(El valor predeterminado si se omite este argumento) es el comienzo del archivo, 1
es el desplazamiento actual, y 2
es el final del archivo. En este caso, utilizamos una compensación de 0 desde el final del archivo, por lo tanto, avanzando al final del archivo en sí. Observe que especificar una compensación distinta de cero en este caso habría elevado un IO.Operación no compatible
Excepción, ya que es imposible hacer una búsqueda no distinta de cero y sin cero.
El modo 'W+'
Este modo funciona de esta manera: el archivo se abrirá tanto para leer como para escribir. Si el archivo existe, su contenido se truncará, de lo contrario se creará el archivo. Al igual que en el ejemplo anterior, será posible leer y escribir el archivo, sin embargo, hay dos grandes diferencias: la primera es que el contenido del archivo se truncará tan pronto como se abra (y no si actúa escribe algo a it), el segundo es que el archivo se creará si no existe.
El modo 'A+'
Al especificar este modo con la función Open Python, obtenemos el siguiente comportamiento: al igual que en los ejemplos anteriores, el archivo se abre tanto para leer como para escribir, la transmisión está posicionada al final del archivo, por lo que cualquier contenido nuevo que se agrega a la existencia.
Deben tenerse en cuenta dos cosas: dado que la transmisión se coloca al final del archivo, si intentamos usar el leer
Método En el objeto Archivo Para obtener el contenido actual, devolverá una cadena vacía. Para poder leer el contenido, primero debemos pasar al comienzo del archivo, utilizando el método Seek de la siguiente manera:
fileObject.buscar (0)
Copiar La segunda cosa muy importante a notar es que al usar este modo, incluso si nos movemos al comienzo del archivo al igual que lo hicimos en el ejemplo anterior, y realizamos una escritura, el contenido existente no se pierde: el nuevo contenido Siempre se adjunta.
Cerrar el objeto de archivo
Después de que terminamos de trabajar con nuestro objeto de archivo, siempre debemos recordar cerrarlo, por múltiples razones. En primis porque algunas operaciones, como la escritura, se vuelven efectivas solo cuando el objeto de archivo está cerrado y su contenido está enjuagado, secundariamente a los recursos del sistema gratuito y para la claridad del código. Hay dos formas en que podemos cerrar un objeto de archivo: el primero es llamando al cerca
Método en el objeto de archivo, como vimos anteriormente. El segundo, es usando el con
declaración:
con Open ('LinuxConfig.txt ',' r ') como fileObject: content = fileObject.leer () # realizar las operaciones necesarias
Copiar ¿Qué pasa en este caso?? Usando esta declaración, la expresión junto a con
, en este caso Abrir ('LinuxConfig.txt ',' r ')
, se evalúa en un objeto de archivo, que admite el protocolo del administrador de contexto, ya que implementa el __ingresar__
y __salida__
métodos. El objeto de archivo está alias al alias a fileObject
. Después de ejecutar el código contenido en el bloque, el __salida__
El método del objeto de archivo se llama automáticamente y el objeto de archivo está cerrado. Usar un administrador de contexto es realmente útil, porque el objeto siempre se cerrará tan pronto como terminemos de operar en él: una cosa menos para recordar.
Conclusiones
En este tutorial aprendimos a usar el Python incorporado abierto
función para crear un objeto de archivo, utilizado para interactuar con un archivo. Vimos los diversos modos que se pueden pasar a la función y cómo cambian el comportamiento del objeto de archivo. Finalmente, vimos por qué es importante cerrar siempre un objeto de archivo después de terminar de trabajar con él, cómo podemos hacerlo usando el cerca
método, y cómo se puede hacer automáticamente, si usamos el con
declaración y un gerente de contexto. Como siempre se sugiere, puede consultar la documentación oficial para mejorar aún más su conocimiento.
Vea también nuestro tutorial de Python más extenso para más conceptos relacionados con Python o nuestros archivos de lectura y escritura con Python Guide.
Tutoriales de Linux relacionados:
- Manejo de la entrada del usuario en scripts bash
- Mastering Bash Script Loops
- Archivos de configuración de Linux: los 30 principales más importantes
- Manipulación de Big Data para la diversión y las ganancias Parte 1
- Manipulación de Big Data para diversión y ganancias Parte 3
- Una introducción a la automatización, herramientas y técnicas de Linux
- Cosas para instalar en Ubuntu 20.04
- Mint 20: Mejor que Ubuntu y Microsoft Windows?
- Manipulación de Big Data para diversión y ganancias Parte 2
- Cómo montar la imagen ISO en Linux
- « Cómo interactuar con los contenedores Docker
- Cómo instalar NextCloud en Ubuntu 18.04 Bionic Beaver Linux »