GNU/Linux >> Tutoriales Linux >  >> Ubuntu

Manejo de archivos en Python:crear, abrir, agregar, leer, escribir

Introducción

El manejo de archivos es una parte integral de la programación. El manejo de archivos en Python se simplifica con métodos integrados, que incluyen la creación, apertura y cierre de archivos.

Mientras los archivos están abiertos, Python también permite realizar varias operaciones con archivos, como leer, escribir y agregar información.

Este artículo le enseña cómo trabajar con archivos en Python.

Requisitos previos

  • Python 3 instalado y configurado.
  • Un IDE o editor de código para escribir código.
  • Acceso a una terminal para ejecutar el código (o ejecutarlo directamente en un IDE).
  • Un archivo de texto para los ejemplos.

Abrir archivos en Python

El open() El método de Python es la función principal de manejo de archivos. La sintaxis básica es:

file_object = open('file_name', 'mode')

El open() La función toma dos parámetros elementales para el manejo de archivos:

1. El file_name incluye la extensión del archivo y asume que el archivo está en el directorio de trabajo actual. Si la ubicación del archivo está en otro lugar, proporcione la ruta absoluta o relativa.

2. El mode es un parámetro opcional que define el método de apertura de archivos. La siguiente tabla describe las diferentes opciones posibles:

El modo debe tener exactamente una creación (x )/leer(r )/escribir(w )/append(a ), como máximo un + . Omitir el modo predeterminado es 'rt' para leer archivos de texto.

A continuación se muestra una tabla que describe cómo se comporta cada uno de los modos cuando se invoca.

Modo Descripción
'r' Lee de un archivo y devuelve un error si el archivo no existe (predeterminado ).
'w' Escribe en un archivo y crea el archivo si no existe o sobrescribe un archivo existente.
'x' Creación exclusiva que falla si el archivo ya existe.
'a' Se agrega a un archivo y crea el archivo si no existe o sobrescribe un archivo existente.
'b' Modo binario. Utilice este modo para archivos que no sean de texto, como imágenes.
't' Modo de texto. Usar solo para archivos de texto (predeterminado ).
'+' Activa los métodos de lectura y escritura.

Modo de lectura

El modo de lectura en Python abre un archivo existente para lectura, colocando el puntero al inicio del archivo.

Para leer un archivo de texto en Python, cargue el archivo usando open() función:

f = open("<file name>")

El modo predeterminado es leer texto ('rt' ). Por lo tanto, el siguiente método es equivalente al predeterminado:

f = open("<file name>", "rt")

Para leer archivos en modo binario, use:

f = open("<file name>", "rb")

Agregar + para abrir un archivo en modo lectura y escritura:

f = open("<file name>", "r+")  # Textual read and write
f = open("<file name>", "rt+") # Same as above
f = open("<file name>", "rb+") # Binary read and write

En todos los casos, la función devuelve un objeto de archivo y las características dependen del modo elegido.

Modo de escritura

El modo de escritura crea un archivo para escribir contenido y coloca el puntero al principio. Si el archivo existe, escribir trunca (borra) cualquier información existente.

Advertencia: El modo de escritura elimina el contenido existente inmediatamente . Compruebe si existe un archivo antes de sobrescribir la información por accidente.

Para abrir un archivo para escribir información, use:

f = open("<file name>", "w")

El modo predeterminado es texto, por lo que la siguiente línea es equivalente al predeterminado:

f = open("<file name>", "wt")

Para escribir en modo binario, abra el archivo con:

f = open("<file name>", "wb")

Agregar + para permitir la lectura del archivo:

f = open("<file name>", "w+")  # Textual write and read
f = open("<file name>", "wt+") # Same as above
f = open("<file name>", "wb+") # Binary write and read

El open() La función devuelve un objeto de archivo cuyos detalles dependen de los modos elegidos.

Modo de adición

El modo Agregar agrega información a un archivo existente, colocando el puntero al final. Si un archivo no existe, el modo de adición crea el archivo.

Utilice una de las siguientes líneas para abrir un archivo en modo de adición:

f = open("<file name>", "a")  # Text append
f = open("<file name>", "at") # Same as above
f = open("<file name>", "ab") # Binary append

Agrega el + firmar para incluir la función de lectura.

Modo Crear

El modo de creación (también conocido como creación exclusiva) crea un archivo solo si no existe, colocando el puntero al comienzo del archivo.

Utilice una de las siguientes líneas para abrir un archivo en modo de creación:

f = open("<file name>", "x")  # Text create
f = open("<file name>", "xt") # Same as above
f = open("<file name>", "xb") # Binary create

Agrega el + Ingrese al modo de incluir la funcionalidad de lectura en cualquiera de las líneas anteriores.

Lectura de archivos en Python

Después de importar un archivo a un objeto, Python ofrece numerosos métodos para leer el contenido.

Usa el read() método en el objeto de archivo e imprimir el resultado. Por ejemplo:

f = open("file.txt")
print(f.read(),end="")

El código imprime el contenido del archivo de texto.

Leer partes del archivo

Proporcione un número a read() función para leer solo el número especificado de caracteres:

f = open("file.txt")
print(f.read(5))

La salida imprime los primeros cinco caracteres del archivo.

Alternativamente, use el readline() método para imprimir solo la primera línea del archivo:

f = open("file.txt")
print(f.readline())

Agregue un número entero a readline() función para imprimir el número especificado de caracteres sin exceder la primera línea.

Leer líneas

Para leer líneas e iterar a través del contenido de un archivo, use un for bucle:

f = open("file.txt")
for line in f:
    print(line, end="")

Alternativamente, use el readlines() método en el objeto de archivo:

f = open("file.txt")
print(f.readlines())

La función devuelve la lista de líneas del flujo de archivos.

Agregue un número entero a readlines() función para controlar el número de líneas. Por ejemplo:

f = open("file.txt")
print(f.readlines(15))

El número entero representa el número del carácter y la función devuelve la línea donde termina el carácter junto con las líneas anteriores.

Cerrar archivos

Un archivo permanece abierto hasta que se invoca el close() función. Es una buena práctica cerrar los archivos que ya no se usan para evitar un comportamiento impredecible y archivos dañados.

Para cerrar un archivo, ejecute close() método en el objeto de archivo:

f.close()

Una forma alternativa de asegurarse de que un archivo se cierre es usar el with declaración. Por ejemplo:

with open("<file name>"):
    file_contents = f.read()
    # Additional code here

El with declaración cierra automáticamente el archivo.

Eliminar archivos en Python

Eliminar archivos en Python requiere establecer comunicación con el sistema operativo. Importar el os biblioteca y elimine un archivo con lo siguiente:

import os
os.remove("file.txt")

El archivo ya no está disponible. Si el archivo no existe, Python arroja un error.

Métodos de archivo de Python

Python ofrece varias otras funciones cuando se trabaja con objetos de archivo. A continuación se muestra una tabla que describe todos los procesos disponibles y lo que hacen.

Comportamiento Modos
Leer r , r+ , w+ , a+ , x+
Escribir r+ , w , w+ , a , a+ , x+
Crear w , w+ , a , a+ , x , x+
Inicio de la posición del puntero r , r+ , w , w+ , x , x+
Fin de la posición del puntero a , a+
Truncar (borrar contenido) w , w+
Debe existir r , r+
No debe existir x , x+

Ubuntu
  1. ¿Cómo leer una variable de un archivo?

  2. ¿Cómo instalar Numpy en Python 3.1?

  3. ¿Cómo abrir un archivo .8 con Man?

  4. Permisos de archivo en Linux:lectura/escritura/ejecución

  5. C fopen vs abierto

Procesamiento científico de audio, Parte I - Cómo leer y escribir archivos de audio con Octave 4.0.0 en Ubuntu

Cómo crear un entorno virtual de Python 3 en Ubuntu 20.04

Cómo abrir un archivo en Linux

Cómo escribir datos en un archivo en Linux

Cómo crear un archivo ISO en Ubuntu 18.04 LTS

Cómo crear accesos directos de escritorio en Ubuntu

    Método Descripción
    close() Descarga y cierra el objeto de archivo.
    detach() Separa el búfer del flujo de texto y devuelve el búfer.
    fileno() Devuelve el descriptor del archivo si está disponible.
    flush() Vacía el búfer de escritura. No disponible para objetos de solo lectura.
    isatty() Comprueba si un flujo de archivos es interactivo.
    read(<int>) Leer <int> número de caracteres como máximo.
    readable() Comprueba si un objeto es legible.
    readline(<int>) Lee desde el objeto hasta una nueva línea o el final del archivo.
    readlines(<int>) Devuelve una lista de líneas del objeto de archivo, donde <int> es el número de carácter aproximado.
    seek(<offset>, <position>) Cambia la posición del puntero a <offset> relativo al <position> .
    seekable() Comprueba si el objeto de archivo admite acceso aleatorio.
    tell() Imprime la posición de flujo actual.
    truncate(<byte>) Cambia el tamaño del flujo de archivos a <bytes> (o la posición actual si no se indica) y devuelve el tamaño.
    write(<string>) Escribe <string> al objeto de archivo y devuelve el número escrito de caracteres.
    writable() Comprueba si el objeto de archivo permite escribir.
    writelines(<list>) Escribe un <list> de líneas al flujo sin un separador de línea.