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:
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 :
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:
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 :
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 :
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