Manejo de archivos en Python

Introducción

Es un consenso no escrito de 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 considerado como una de las mejores cajas de herramientas para construir herramientas y utilidades que puede usar por diversas razones.
Este artículo tratará 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 planosarchivos de texto . El iomódulo es el módulo predeterminado para acceder a los archivos, por lo tanto, no necesitaremos importar ninguna biblioteca externa para las operaciones generales de IO.
Las funciones clave que se utilizan para el manejo de archivos en Python son: open()close()read()write()append().

Abriendo archivos con open()

Esta función devuelve un objeto de archivo llamado "handle", que se utiliza para leer y escribir en un archivo. Los argumentos que la función puede recibir son los siguientes:
open(filename, mode='r', buffering=-1, encoding=None, errors=None, newline=None, closefd=True, opener=None)  
Normalmente, solo se necesitan los parámetros filenamemode, mientras que los otros se utilizan de forma implícita con sus valores predeterminados.
El siguiente fragmento de código muestra cómo se puede usar 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 "leer" es el modo predeterminado para la función de apertura.
Los modos de acceso disponibles para la open()función son los siguientes:
  • r: Abre el archivo en modo de solo lectura. Comienza a leer desde el principio del archivo y es el modo predeterminado para la 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 leer y escribir, colocando el puntero al principio del archivo.
  • w: Se 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 añadir en modo binario.
  • a+: Abre un archivo para añadir y leer.
  • 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()función que se muestra en el siguiente fragmento de código:
file_example = open ("F:\\Directory\\AnotherDirectory\\tests\\TestingText.txt")  
Nota : Algo que se debe tener en cuenta es asegurarse siempre de que tanto el nombre del archivo como la ruta especificada sean correctos. Si alguno de ellos es incorrecto o no existe, se FileNotFoundErrorlanzará el error , el cual deberá 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-finally 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!")

Leyendo de archivos con read()

Python contiene 3 funciones para leer archivos: read()readline(), y readlines()Las dos últimas funciones son simplemente funciones de ayuda 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 : los caracteres especiales pueden no leerse correctamente usando la readfunción. Para leer correctamente los caracteres especiales, puede pasar el parámetro de codificación para que read()funcione y establecer su valor utf8como se muestra a continuación:
file_example = open ("F:\\Directory\\AnotherDirectory\\tests\\TestingText.txt", "r", encoding="utf8" )  
Además, la función read(), así como la función auxiliar readline(), pueden recibir un número como parámetro que determinará el número de bytes que se leerán 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 se readline()comporta de una manera similar, pero en lugar de devolver todo el texto, 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 script anterior, la primera print()instrucción devuelve la primera línea e inserta una línea en blanco en la consola de salida. La siguiente print()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 la salida:
Hello world! Python is the way to coding awesomeness.

If yo  
Finalmente, la función de ayuda readlines()lee todo el texto y los divide en líneas para facilitar la lectura. Echa 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 readlines()se considera que la función es mucho más lenta 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 más 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, la siguiente declaración lo reemplazará en el búfer.

Escribir archivos con write()

Al utilizar esta función, se sobrescribirá toda la información dentro del archivo con el mismo nombre. Su comportamiento es similar a la read()función, pero inserta 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 Cream\n", "Fruits\n", "Movies\n", "Anime\n", "Naps\n", "Jerky\n"]

file_example2 = open ("F:\\Directory\\AnotherDirectory\\tests\\TestingTextTwo.txt", "w")

file_example2.writelines(listOfThingsToSay)  
Nota : para poder utilizar la print()función, el modo debe configurarse como w+, lo que permite la lectura y la escritura.

Añadiendo 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, la append()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 un nuevo texto, se puede usar el siguiente código:
listOfThingsDo = ["You need at least to: \n", "Eat fried Ice Cream\n", "Go to Disney\n", "Travel to the moon\n", "Cook Pineapple Pizza\n", "Dance Salsa\n"]

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  

Cierre de archivos abiertos con close()

La close()función borra el búfer de memoria y cierra el archivo. Esto significa que ya no podremos leer el archivo y tendremos que volver a abrirlo si queremos leerlo nuevamente. Además, algunos sistemas operativos, como Windows, tratan los archivos abiertos como bloqueados, por lo que es importante limpiarlos dentro de su código.
Usando el código de muestra usado anteriormente, esta función se usa 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 es uno de los más utilizados. Es fácil de implementar y de analizar, por lo que es una herramienta perfecta para los principiantes en la 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 fáciles que en otros idiomas cuando se trata de trabajar con archivos.

Acerca de: Programator

Somos Instinto Programador

0 comentarios:

Publicar un comentario

Dejanos tu comentario para seguir mejorando!

Con tecnología de Blogger.