Manejo de archivos en Python

    Introducci贸n

    Es un consenso no escrito que Python es uno de los mejores lenguajes de programaci贸n iniciales para aprender como novato. Es extremadamente vers谩til, f谩cil de leer / analizar y bastante agradable a la vista. El lenguaje de programaci贸n Python es altamente escalable y es ampliamente considerado como una de las mejores cajas de herramientas para crear herramientas y utilidades que quiz谩s desee utilizar por diversas razones.

    Este art铆culo cubre brevemente c贸mo Python maneja uno de los componentes m谩s importantes de cualquier sistema operativo: sus archivos y directorios. Afortunadamente, Python tiene funciones integradas para crear y manipular archivos, ya sea archivos planos o archivos de texto. los io module es el m贸dulo predeterminado para acceder a los archivos, por lo que no necesitaremos importar ninguna biblioteca externa para las operaciones generales de IO.

    Las funciones clave utilizadas para el manejo de archivos en Python son: open(), close(), read(), write() y append().

    Abrir archivos con open()

    Esta funci贸n devuelve un objeto de archivo llamado “identificador”, que se utiliza para leer y escribir en un archivo. Los argumentos que puede recibir la funci贸n son los siguientes:

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

    Normalmente, solo el filename y mode Se necesitan par谩metros, mientras que los dem谩s se utilizan impl铆citamente configurados con sus valores predeterminados.

    El siguiente fragmento de c贸digo muestra c贸mo se puede utilizar esta funci贸n:

    file_example = open ("TestingText.txt") 
    

    Esto abrir谩 un archivo de texto llamado “TestingText” en modo de solo lectura. Tenga en cuenta que solo se especific贸 el par谩metro de nombre de archivo, esto se debe a que el modo “lectura” es el modo predeterminado para la funci贸n de apertura.

    Los modos de acceso disponibles para open() funci贸n son las siguientes:

    • r: Abre el archivo en modo de solo lectura. Comienza a leer desde el principio del archivo y es el modo predeterminado para open() funci贸n.
    • rb: Abre el archivo como de solo lectura en formato binario y comienza a leer desde el principio del archivo. Si bien el formato binario se puede usar para diferentes prop贸sitos, generalmente se usa cuando se trata de cosas como im谩genes, videos, etc.
    • r+: Abre un archivo para lectura y escritura, colocando el puntero al principio del archivo.
    • w: Abre en modo de solo escritura. El puntero se coloca al principio del archivo y esto sobrescribir谩 cualquier archivo existente con el mismo nombre. Crear谩 un nuevo archivo si no existe uno con el mismo nombre.
    • wb: Abre un archivo de solo escritura en modo binario.
    • w+: Abre un archivo para escribir y leer.
    • wb+: Abre un archivo para escribir y leer en modo binario.
    • a: Abre un archivo para agregarle nueva informaci贸n. El puntero se coloca al final del archivo. Se crea un nuevo archivo si no existe uno con el mismo nombre.
    • ab: Abre un archivo para agregar en modo binario.
    • a+: Abre un archivo para agregarlo y leerlo.
    • ab+: Abre un archivo para agregar y leer en modo binario.

    Si tanto el archivo de Python que se est谩 ejecutando como el archivo de destino para leer no existen en el mismo directorio, debemos pasar la ruta completa del archivo a leer a la open() funciona como se muestra en el siguiente fragmento de c贸digo:

    file_example = open ("F:\Directory\AnotherDirectory\tests\TestingText.txt")
    

    Nota: Algo a tener en cuenta es asegurarse siempre de que tanto el nombre del archivo como la ruta proporcionada sean correctos. Si es incorrecto o no existe, el error FileNotFoundError se lanzar谩, que luego debe ser detectado y manejado por su programa para evitar que se bloquee.

    Para evitar este problema, como pr谩ctica recomendada, los errores se pueden detectar con un bloque try-finalmente para manejar la excepci贸n como se muestra a continuaci贸n.

    try:
        file_example = open ("F:\Directory\AnotherDirectory\tests\TestingText.txt")
    except IOError:
        print("An error was found. Either path is incorrect or file doesn't exist!")
    
    finally:
        print("Terminating process!")
    

    Lectura de archivos con read()

    Python contiene 3 funciones para leer archivos: read(), readline()y readlines(). Las dos 煤ltimas funciones son simplemente funciones auxiliares que facilitan la lectura de ciertos tipos de archivos.

    Para los ejemplos que se utilizar谩n, “TestingText.txt” contiene el siguiente texto:

    Hello, world! Python is the way to coding awesomeness.
    
    If you don't believe me, try it on your own.
    
    Come, you will enjoy the Dark Side. We have cookies!
    

    El m茅todo de lectura se utiliza de la siguiente manera:

    file_example = open ("F:\Directory\AnotherDirectory\tests\TestingText.txt", "r")
    
    print(file_example.read())
    

    La salida ser谩 la siguiente:

    Hello, world! Python is the way to coding awesomeness.
    
    If you don't believe me, try it on your own.
    
    Come, you will enjoy the Dark Side. We have cookies!
    

    Nota: Es posible que los caracteres especiales no se lean correctamente con el read funci贸n. Para leer los caracteres especiales correctamente, puede pasar el par谩metro de codificaci贸n a read() funci贸n y establezca su valor en utf8 Como se muestra abajo:

    file_example = open ("F:\Directory\AnotherDirectory\tests\TestingText.txt", "r", encoding="utf8" )
    

    Adem谩s, la funci贸n read(), as铆 como la funci贸n de ayuda readline(), puede recibir un n煤mero como par谩metro que determinar谩 el n煤mero de bytes a leer del archivo. En el caso de un archivo de texto, este ser谩 el n煤mero de caracteres devueltos.

    file_example = open ("F:\Directory\AnotherDirectory\tests\TestingText.txt", "r")
    
    print(file_example.read(8))
    

    La salida ser谩 la siguiente:

    Hello, w
    

    La funci贸n de ayuda readline() se comporta de manera similar, pero en lugar de devolver el texto completo, devolver谩 una sola l铆nea.

    file_example = open ("F:\Directory\AnotherDirectory\tests\TestingText.txt", "r")
    
    print(file_example.readline())
    print(file_example.readline(5))
    

    En el gui贸n de arriba, el primero print() declaraci贸n devuelve la primera l铆nea e inserta una l铆nea en blanco en la consola de salida. El siguiente print() La declaraci贸n se separa de la l铆nea anterior con una l铆nea en blanco y comienza en una nueva l铆nea como se muestra en el resultado:

    Hello world! Python is the way to coding awesomeness.
    
    If yo
    

    Finalmente, la funci贸n de ayuda readlines() lee todo el texto y lo divide en l铆neas para facilitar la lectura. Eche un vistazo al siguiente ejemplo:

    print(file_example.readlines())
    

    La salida de este c贸digo ser谩:

    Hello world! Python is the way to coding awesomeness. If you don't believe me, try it on your own. Come, you will enjoy the Dark Side. We have cookies!
    

    Tenga en cuenta que el readlines() se considera que la funci贸n es mucho m谩s lento e ineficiente que la read() funci贸n, sin muchos beneficios. Una buena alternativa a esto es usar un bucle que funcionar谩 mucho m谩s suave y r谩pido:

    file_example = open ("F:\Directory\AnotherDirectory\tests\TestingText.txt", "r")
    
    for lines in file_example:
        print(lines) 
    

    Tenga en cuenta que si la l铆nea no se imprime, ser谩 reemplazada en el b煤fer por la siguiente declaraci贸n

    Escribir en archivos con write()

    Al utilizar esta funci贸n, se sobrescribir谩 cualquier informaci贸n dentro del archivo con el mismo nombre. Su comportamiento es similar al read() funci贸n, pero insertando informaci贸n en lugar de leerla.

    file_example2 = open ("F:\Directory\AnotherDirectory\tests\TestingTextTwo.txt", "w")
    
    file_example2.write("This is a test. Enjoy it!n") #'n' is for change line.
    
    file_example2.write("Another thing to know is doing it slowly.n")
    
    file_example2.write("One by one. Yay!")
    

    Si es necesario escribir varias l铆neas, la subfunci贸n writelines() podr铆a usarse en su lugar:

    listOfThingsToSay = ["I like things like: n", "Ice Creamn", "Fruitsn", "Moviesn", "Animen", "Napsn", "Jerkyn"]
    
    file_example2 = open ("F:\Directory\AnotherDirectory\tests\TestingTextTwo.txt", "w")
    
    file_example2.writelines(listOfThingsToSay)
    

    Nota: para poder usar print() funci贸n, el modo debe configurarse como w+, que permite leer y escribir.

    Agregar a archivos con append()

    Esta funci贸n act煤a de manera similar a la write() funci贸n, sin embargo, en lugar de sobrescribir el archivo, el append() La funci贸n agrega contenido al archivo existente.

    Si un archivo de texto llamado “TestingTextThree” contiene la siguiente informaci贸n:

    Some essential things are missing in life and should not be avoided.
    

    Para agregar texto nuevo, se podr铆a usar el siguiente c贸digo:

    listOfThingsDo = ["You need at least to: n", "Eat fried Ice Creamn", "Go to Disneyn", "Travel to the moonn", "Cook Pineapple Pizzan", "Dance Salsan"]
    
    file_example3 = open ("F:\Directory\AnotherDirectory\tests\TestingTextThree.txt", "a+")
    
    file_example3.writelines(listOfThingsToDo)
    
    for newline in file_example3
        print(newlines)
    

    La salida ser谩 la siguiente:

    Some essential things are missing in life and should not be avoided.
    
    You need at least to:
    
    Eat fried Ice Cream
    
    Go to Disney
    
    Travel to the moon
    
    Cook Pineapple Pizza
    
    Dance Salsa
    

    Cerrar archivos abiertos con close()

    los close() La funci贸n borra el b煤fer de memoria y cierra el archivo. Esto significa que ya no podremos leer del archivo y tendremos que volver a abrirlo si queremos volver a leerlo. Adem谩s, algunos sistemas operativos, como Windows, tratan los archivos abiertos como bloqueados, por lo que es importante limpiar despu茅s de usted mismo dentro de su c贸digo.

    Utilizando el c贸digo de muestra utilizado anteriormente, esta funci贸n se utiliza de la siguiente manera:

    file_example = open ("F:\Directory\AnotherDirectory\tests\TestingText.txt", "r")
    
    print(file_example.read())
    
    file_example.close()
    

    Conclusi贸n

    Python es uno de los lenguajes de programaci贸n m谩s robustos y tambi茅n uno de los m谩s utilizados. Es f谩cil de implementar y analizar, por lo que es una herramienta perfecta para principiantes en programaci贸n. Adem谩s, su versatilidad lo convierte en un punto de partida perfecto para los principiantes en programaci贸n.

    En lo que respecta al manejo de archivos, Python tiene funciones f谩ciles de usar con un tiempo de respuesta r谩pido y m茅todos de manejo de errores relativamente resistentes, por lo que los procesos de desarrollo y depuraci贸n son mucho m谩s sencillos que en otros lenguajes cuando se trata de trabajar con archivos.

     

    Etiquetas:

    Deja una respuesta

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