Manipulación de archivos

Los desarrolladores de aplicaciones trabajan con archivos todo el tiempo. Créelos cada vez que cree un nuevo script o aplicación. Cree informes, guarde correos electrónicos, descargue libros y música en Microsoft Word. Los archivos están en todas partes. Los navegadores web descargan muchos archivos pequeños para acelerar su experiencia de navegación.

Recomendado: framework de python

Al escribir un programa, debe usar archivos existentes o escribir uno propio. Python proporciona una buena función integrada llamada open() el puede ayudarte con estas tareas.

En este capítulo, aprenderá a:

  • abrir un archivo
  • leer el archivo
  • escribir un archivo
  • agregar al archivo

¡Empecemos!

Función abrir()

Puede abrir el archivo para leerlo, escribirlo o adjuntarlo. Puede usar el archivo incrustado para abrir el archivo open() Trabaja.

Está open() Parámetros de función y valores predeterminados:

open(file, mode="r", buffering=-1, encoding=None, errors=None, newline=None, 
     closefd=True, opener=None)

Al abrir un archivo, debe pasar el nombre del archivo o la ruta del archivo. La configuración predeterminada al abrir un archivo es abrirlo en modo de solo lectura. Significa «r».

Recomendado: ¿ Por que usar python para machine learning ?

La siguiente tabla describe los otros modos que se pueden usar al abrir archivos.

significado de las letras

‘r’Abrir archivo para lectura (predeterminado)
‘w’Abrir para escribir y sobrescribir el archivo existente
‘Una especie de’Abierto para escritura. Si el archivo existe, añádelo al final.
‘b’modo binario
‘No’modo de texto (predeterminado)
‘+’leer escribir

Este capítulo se enfoca en leer, escribir y agregar Si necesita codificar el archivo en un formato específico (por ejemplo, UTF-8) encoding alcance. Consulte la documentación para obtener una lista completa de los tipos de codificación admitidos por Python.

Hay dos formas principales de abrir archivos. Puedes hacerlo:

file_handler = open('example.txt')
# do something with the file
file_handler.close()

Ahora abre y cierra el archivo. Pero, ¿qué sucede si obtengo una excepción cuando intento abrir el archivo? Por ejemplo, supongamos que intenta abrir un archivo que no existe. O tengo el archivo abierto pero no puedo escribir. Estas cosas pueden suceder y el descriptor de archivo permanecerá abierto y no se cerrará correctamente.

Una solución es usar try/finally:

try:
    file_handler = open('example.txt')
except:
    # ignore the error, print a warning or log the exception
    pass
finally:
    file_handler.close()

Sin embargo, la mejor manera de abrir archivos en Python es usar métodos especiales de Python. with declaración.este with La declaración activa el llamado administrador de contexto.. los administradores de contexto se utilizan para establecer algo o destruir algo. En este ejemplo, abrimos el archivo, hacemos algo y luego cerramos el archivo.

Desarrollador básico de Python open() al administrador de contexto. Dicho esto, también puedes abrir archivos como este:

with open('example.txt') as file_handler:
    # do something with the handler here
    data = file_handler.read()

Abre el archivo y asigna un objeto de archivo. file_handler..entonces el código dentro de la sangría with La declaración se considera El contexto..ahora el administrador de archivos se maneja ya sea que el archivo se lea o se escriba. with declaración, cerrará automáticamente el archivo.

Como tener finally ¡Declaración integrada!

Ahora que sabe cómo abrir un archivo, aprendamos cómo leerlo en Python.

Leer el archivo

Leer archivos en el lenguaje de programación Python es muy fácil, de hecho, si no abres el archivo y lo configuras mode Para parámetros, abre el archivo en modo «solo lectura» por defecto.

Aquí un ejemplo:

with open('example.txt') as file_handler:
    for line in file_handler:
        print(line)

Este código abre un archivo de texto y repite e imprime cada línea del archivo.yes file_handler Se puede repetir usando Python for El ciclismo es muy conveniente. De hecho, esta es una forma recomendada de fragmentar archivos para evitar quedarse sin memoria.

Otra forma de iterar sobre las líneas del archivo es hacer lo siguiente:

with open('example.txt') as file_handler:
    lines = file_handler.readlines()
    for line in lines:
        print(line)

Con esta ruta, todo el archivo se carga en la memoria. Dependiendo de la cantidad de RAM instalada en su máquina, es posible que se quede sin memoria. Por eso se recomienda el primer método.

Sin embargo, si sabe que el archivo es pequeño, existe otra forma de cargar el archivo completo en la memoria.

with open('example.txt') as file_handler:
    file_contents = file_handler.read()

Este método lee todo el archivo en la memoria y lo asigna a una variable.

En algunos casos, es posible que desee reproducir el archivo en fragmentos grandes o pequeños. Esto se puede hacer especificando el tamaño en bytes. read()..puedes usarlo while Bucle para esto:

while True:
    with open('example.txt') as file_handler:
        data = file_handler.read(1024)
        if not data:
            break
        print(data)

Este ejemplo lee 1024 bytes a la vez. Al llamar read() devuelve una cadena vacía, luego while parada de bucle break La instrucción se ejecuta.

Leer archivo binario

Es posible que necesite leer archivos binarios. Python es r modelo con b:

with open('example.pdf', 'rb') as file_handler:
    file_contents = file_handler.read()

Tenga en cuenta el segundo parámetro a continuación open() diente rb..esto hará que Python abra el archivo en modo binario de solo lectura.al imprimir file_contentsLa mayoría de los binarios no están en formato legible por humanos, por lo que puede ver qué está mal.

Escribir un archivo

Para crear un nuevo archivo en Python, utilice casi la misma sintaxis que la lectura. Sin embargo, en lugar de establecer el modo en rlo configuraste para w en modo escritura. Si necesita escribir en binario, abra los siguientes archivos: wb modelo.

prevenir: cuando está en uso w cuando wb Este modo sobrescribirá el archivo si ya existe. Python no le advierte de ninguna manera. Python proporciona una forma de comprobar si existe un archivo. os por módulos os.path.exists()..para obtener más información, consulte la documentación de Python.

Escribe una línea de texto en un archivo.

>>> with open('example.txt', 'w') as file_handler:
...     file_handler.write('This is a test')

Esto escribirá una línea de texto en el archivo. Si escribe más texto, se escribirá al lado del texto anterior. Entonces, si necesita agregar una nueva línea, debe escribir una línea para usar. n..

Para verificar que funciona, puede leer el archivo e imprimir su contenido.

>>> with open('example.txt') as file_handler:
...     print(file_handler.read())
... 
This is a test

Si necesita escribir varias líneas a la vez writelines() Un método que acepta una secuencia de cadenas. Puedes usar esto list soga writelines()Por ejemplo.

Encontrar en el archivo

El administrador de archivos también proporciona otro método que vale la pena mencionar. seek() Puede usarlo para cambiar la posición del objeto de archivo. Es decir, puede decirle a Python dónde comenzar a leer el archivo.

El método seek() acepta dos parámetros.

  • offset – el número de bytes de whence
  • whence -punto de referencia

Se puede configurar whence para estos tres valores:

  • 0 – parte superior del archivo (predeterminado)
  • 1- Ubicación actual del archivo
  • 2 – fin del archivo

Tomemos como ejemplo el archivo escrito anteriormente en este capítulo.

>>> with open('example.txt') as file_handler:
...     file_handler.seek(4)
...     chunk = file_handler.read()
...     print(chunk)
... 
 is a test

Aquí el archivo se abre en modo de sólo lectura. Luego busque el cuarto byte y lea el resto del archivo en una variable. chunk.Al final, chunk Asegúrese de que haya una sección de solo lectura en el archivo.

Agregar al archivo

También puede agregar datos a un archivo existente usando . a modo, que es un modo adicional.

Aquí un ejemplo:

>>> with open('example.txt', 'a') as file_handler:
...     file_handler.write('Here is some more text')

Si el archivo existe, esto agregará una nueva cadena al final del archivo. Por otro lado, la carpeta es No Si existe, Python crea el archivo y agrega los datos al archivo.

Excepción de archivo de captura

Se pueden encontrar errores al procesar el archivo. Por ejemplo, es posible que no tenga los permisos adecuados para crear o modificar archivos. En este caso, Python OSError.. hay otros errores de vez en cuando, pero estos son los errores más comunes cuando se trabaja con archivos.

Puede usar las capacidades de manejo de excepciones de Python para mantener su programa en ejecución.

try:
    with open('example.txt') as file_handler:
        for line in file_handler:
            print(line)
except OSError:
    print('An error has occurred')

Este código intenta abrir el archivo uno por uno e imprimir su contenido línea por línea. OSError Una vez arriba, lo atrapas try/except Imprime un mensaje para el usuario.

Palabras finales

Ahora conoce los conceptos básicos para trabajar con archivos en Python. En este capítulo, aprendió a abrir archivos. Luego aprendiste a leer y escribir archivos. También aprendió a buscar en archivos, agregarlos a archivos y manejar excepciones al acceder a archivos. En este punto, realmente solo tienes que poner en práctica lo que has aprendido. Pruebe lo que aprendió en este capítulo y vea lo que puede hacer por sí mismo.

¿ Te fue útil este artículo ?
⬇️ Ayudame compartiendo para poder llegar a más personas.⬇️

4 comentarios en «Manipulación de archivos»

  1. ¡Interesante tema! ¿Se puede confiar en la manipulación de archivos?

    • ¡Claro que no se puede confiar en la manipulación de archivos! Siempre hay riesgos de mal uso o alteración de la información. Es fundamental mantener la integridad de los datos para garantizar su veracidad. ¡Mejor prevenir que lamentar!

  2. ¿Y si abrimos archivos con emojis en lugar de palabras? 🤔

    • ¡Eso sería un caos total! Los emojis no tienen el mismo significado para todos, ¡imagínate la confusión! Además, no serían muy útiles para documentos formales o profesionales. Mejor mantener las palabras como siempre, ¿no crees? 😉

Los comentarios están cerrados.