módulo in_place en Python

A veces, mientras trabajamos con archivos de Python, podemos tener una utilidad en la que deseamos modificar archivos sin usar el contexto del sistema o la salida estándar del sistema. Tal situación requiere la lectura/escritura de archivos en el lugar, es decir, sin utilizar los recursos del proceso. Esto se puede lograr usando el módulo ein_place en Python. Este módulo –

  • No usa sys.stdout, sino que devuelve la nueva instancia del controlador de archivos.
  • Soporta todos los métodos de manejo de archivos.
  • En caso de excepción, se conserva el archivo original, ayudando en la atomicidad.
  • La creación de archivos temporales no afecta a otros archivos abiertos.

Instalación

Simplemente ejecute este comando para instalar el módulo requerido

pip instalar en_lugar

Ahora, para hacer el trabajo, use el método in_place() de este módulo.

Sintaxis:

in_place.InPlace(filename, mode=t, backup=Ninguno, backup_ext=Ninguno, delay_open=Falso, mover_primero=Falso)

Parámetro:

nombre de archivo: ubicación del archivo para abrir y editar en el lugar.
mode : Modo con el que abrir el archivo. Las opciones son byte (b) y texto (t). En caso de que esté abierto en bytes más, la lectura y escritura sucede en bytes. En el modo de texto, R & W ocurre en string. El valor predeterminado es el modo de texto.
copia de seguridad: ruta para guardar el archivo original después del final del proceso en caso de que se mantenga una copia de seguridad del archivo original.
backup_ext: copia de seguridad creada con nombre: nombre de archivo + backup_ext, del archivo original antes de editarlo. 
delay_open: en caso de que se establezca en True, solo abrirá el archivo después de llamar a open(), mientras que, de forma predeterminada, se abre tan pronto como se inicia la clase.
mover_primero:Si se establece en Verdadero, el archivo de entrada se envía a una ubicación temporal y la salida se edita en su lugar primero. De forma predeterminada, este proceso tiene lugar después de llamar a close() o cuando finaliza el proceso.

Usando esta función, el archivo en uso se abre primero y se realiza una tarea requerida en él. A continuación se muestra la implementación más simple para el mismo.

Ejemplo 1 :

Aporte:

Contenido original

Python3

import in_place
 
# using inplace() to perform same file edit.
with in_place.InPlace('gfg_inplace') as f:
    for line in f:
 
        # reversing cases while writing in file, inplace
        f.write(''.join(char.upper() if char.islower() else char.lower()
                        for char in line))

Producción :

Salida de archivo tras ejecución de código.- Altera casos.

También es posible hacer primero una copia de seguridad de los datos del archivo existente en algún otro archivo y luego realizar los cambios necesarios en el archivo. Para esto, el nombre del archivo por el cual desea crear una copia de seguridad se le da como valor al argumento de la copia de seguridad.

Ejemplo 2: 

Aporte:

Salida de archivo tras ejecución de código.- Altera casos.

Python3

import in_place
 
# using inplace() to perform same file edit.
# backs up original file in given path.
with in_place.InPlace('gfg_inplace', backup='origin_gfg_inplace') as f:
    for line in f:
 
        # reversing cases while writing in file, inplace
        f.write(''.join(char.upper() if char.islower() else char.lower()
                        for char in line))

Producción : 

Después de la ejecución del código, cambios en el lugar.

La copia de seguridad del contenido original se crea en un archivo nuevo.

La alternativa al método anterior es el uso de la palabra clave backup_ext. En esto, simplemente pase la palabra adicional para diferenciar el archivo existente.

Ejemplo 3:

Aporte:

Python3

import in_place
 
# using inplace() to perform same file edit.
# adds extension to file and creates backup
with in_place.InPlace('gfg_inplace', backup_ext='-original') as f:
    for line in f:
 
        # reversing cases while writing in file, inplace
        f.write(''.join(char.upper() if char.islower() else char.lower()
                        for char in line))

Producción : 

Después de la ejecución del código, cambios en el lugar.

Se creó una copia de seguridad del archivo original, agregando la extensión dada.

Publicación traducida automáticamente

Artículo escrito por manjeet_04 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *