Manejo de archivos en Python

M

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.

 

About the author

Ramiro de la Vega

Bienvenido a Pharos.sh

Soy Ramiro de la Vega, Estadounidense con raíces Españolas. Empecé a programar hace casi 20 años cuando era muy jovencito.

Espero que en mi web encuentres la inspiración y ayuda que necesitas para adentrarte en el fantástico mundo de la programación y conseguir tus objetivos por difíciles que sean.

Add comment

Sobre mi

Últimos Post

Etiquetas

Esta web utiliza cookies propias para su correcto funcionamiento. Al hacer clic en el botón Aceptar, aceptas el uso de estas tecnologías y el procesamiento de tus datos para estos propósitos. Más información
Privacidad