WORDPRESS

Cómo trabajar con archivos en Python

En cualquier lenguaje de programación, el manejo de archivos es un aspecto importante. Python también admite el procesamiento de archivos en diferentes modos, como lectura y escritura de archivos, etc.

Al final de este tutorial, podrá:

  • abrir y leer archivos en Python,
  • leer líneas de un archivo de texto,
  • escribir y agregar a un archivo, y
  • Trabaje con archivos en Python utilizando administradores de contexto.

Cómo leer un archivo en Python

Para abrir un archivo en Python, puede usar la sintaxis general: open('file_name','mode').

  • aquí, file_name es el nombre del archivo.

notas: Si el archivo que desea abrir está en el directorio de trabajo actual, solo puede mencionar el nombre del archivo. Si está en otra carpeta de su entorno de trabajo, debe incluir la ruta del archivo.

  • parámetro mode Especifique el modo en el que desea abrir el archivo.

El modo predeterminado para abrir archivos es leer-representado por letras 'r'Sin embargo, se recomienda especificar el modo explícitamente.

Antes de comenzar, echemos un vistazo a los archivos. lib.txtque usaremos en este ejemplo.

📁 Descargue los archivos de texto y el código utilizados en este tutorial este repositorio de GitHub.

Cómo trabajar con archivos en Python 4

El fragmento de código siguiente muestra cómo abrir un archivo de texto 'lib.txt' Usar en Python open() funcionar y leer su contenido.

file = open('lib.txt','r')
contents = file.read()
print(contents)
file.close()


# Output
Hello, there!
Here are a few helpful Python libraries:
1) NumPy
2) pandas
3) matplotlib
4) seaborn
5) scikit-learn
6) BeautifulSoup
7) Scrapy
8) nltk
9) Bokeh
10) statsmodels

En el ejemplo anterior,

  • Esta open() La función devuelve un objeto de archivo, que elegimos llamar file.
  • A continuación, llamamos read() método file.
  • variable contents Ahora contiene el contenido del archivo. Lo imprimimos.
  • Finalmente, cerramos el archivo.

Sin embargo, si olvida cerrar el archivo, puede desperdiciar recursos. Si está tratando con muchos de estos archivos, puede ocupar mucha memoria. Esto se debe a que ha abierto varios archivos sin cerrar ninguno de ellos.

Ahora, aprendamos una mejor manera de abrir archivos. administrador de contextoEl siguiente fragmento de código muestra cómo usarlos.

with open('lib.txt','r') as f:
  contents = f.read()
  print(contents)

Cuando trabaje con archivos con el Administrador de contactos, no tiene que usar close() método. El archivo se cierra automáticamente una vez completada la operación de E/S.

Cómo leer líneas de un archivo en Python

En nuestro archivo de texto de ejemplo, solo tenemos unas pocas líneas. Así que leer todo el contenido del archivo a la vez no es un problema.

python - leer archivo
Cómo trabajar con archivos en Python 5

Sin embargo, cuando necesite leer archivos grandes, use read() los métodos, como se muestra arriba, pueden no ser muy eficientes.

De hecho, si el archivo de texto es muy grande, es posible que se quede sin memoria muy rápidamente. Esta es la razón por la que es posible que desee leer líneas de solo lectura de un archivo de texto, y aprenderá cómo hacerlo en esta sección.

Leer líneas de un archivo usando el método readline() de Python

Esta readline() El método lee una línea a la vez del archivo.

Ejecute el siguiente fragmento de código.

with open('lib.txt','r') as f:
  line = f.readline()
  print(line)
  line = f.readline()
  print(line)


# Output
Hello, there!

Here are a few helpful Python libraries:

puedes ver que después de la primera readline() Llamada al método que imprime la primera línea del archivo.segunda llamada readline() El método devuelve la segunda línea del archivo.

Esto se debe a que, después de la primera llamada al método, el puntero del archivo se encuentra al principio de la segunda línea.

En Python puedes usar tell() método para obtener la posición actual del puntero del archivo.y mueva el puntero del archivo a una posición específica, puede usar seek() método.

En el fragmento de código a continuación, usamos f.seek(0) después de la primera llamada al método. Esto moverá el puntero del archivo al principio del archivo de texto. Es por eso que la primera línea del archivo se imprime en ambas ocasiones.

with open('lib.txt','r') as f:
  line = f.readline()
  print(line)
  f.seek(0)
  line = f.readline()
  print(line)


# Output
Hello, there!

Hello, there!

Leer líneas de un archivo usando el método readlines() de Python

Hay otro método estrechamente relacionado llamado readlines().

Cuando ejecute el siguiente fragmento de código, verá readlines() El método devuelve una lista de todas las líneas del archivo.

with open('lib.txt','r') as f:
  lines = f.readlines()
  print(lines)


# Output
['Hello, there!\n', 'Here are a few helpful Python libraries:\n', 
'1) NumPy\n', '2) pandas\n', '3) matplotlib\n', 
'4) seaborn\n', '5) scikit-learn\n', '6) BeautifulSoup\n', 
'7) Scrapy\n', '8) nltk\n', '9) Bokeh\n', '10) statsmodels\n', '\n']

Lea líneas de un archivo usando el bucle for de Python

Para leer líneas de un archivo de texto, también puede usar for Anillo.

Una vez que tenga un objeto de archivo, puede usar for Recorra el contenido del archivo, una línea a la vez, e imprímalo, como se muestra a continuación. Tenga en cuenta que solo estamos accediendo a una línea a la vez en lugar de leer el contenido de todo el archivo.

with open('lib.txt','r') as f:
  for line in f:
    print(line, end='')

notas: cuando se usa Python print() función, el delimitador predeterminado es una nueva línea —'\n' Características. Pero en el archivo original, no tenemos estas nuevas líneas. Así que establezca el parámetro delimitador en una cadena vacía: sep = '' Para imprimir el contenido del archivo tal cual.

Cómo leer fragmentos de contenido de un archivo en Python

En Python, también puede optar por leer el contenido de un archivo en pequeños fragmentos.

Lea el código a continuación:

  • aquí nos ponemos chunk_size llegar 50Esto significa que se leerán los primeros 50 caracteres del archivo y también los imprimiremos.
  • Ahora, llama tell() métodos del objeto de archivo fPuede ver que el puntero del archivo ahora está en la posición 51, como se esperaba.
chunk_size = 50
with open('lib.txt','r') as f:
  chunk = f.read(chunk_size)
  print(chunk)
  current = f.tell()
  print(f"Current position of file pointer: {current}")

# Output
Hello, there!
Here are a few helpful Python librar
Current position of file pointer: 51

También puede usar esta técnica para leer archivos completos en pequeños fragmentos.

El siguiente fragmento de código muestra cómo hacerlo.

chunk_size = 50
with open('lib.txt','r') as f:
  chunk = f.read(chunk_size)
  print(chunk,end='')

  while(len(chunk)>0):
    chunk = f.read(chunk_size)
    print(chunk,end='')

# Output
Hello, there!
Here are a few helpful Python libraries:
1) NumPy
2) pandas
3) matplotlib
4) seaborn
5) scikit-learn
6) BeautifulSoup
7) Scrapy
8) nltk
9) Bokeh
10) statsmodels

Aquí, usamos un while Recorra el contenido del archivo. Leemos el contenido del archivo en fragmentos de tamaño 50 hasta llegar al final del archivo. ✅

Cómo escribir en un archivo en Python

Para escribir un archivo de texto en Python, debe abrirlo en modo de escritura; especifique 'w'.

archivo de escritura de Python
Cómo trabajar con archivos en Python 6

El fragmento de código siguiente muestra cómo hacerlo.

with open('new_file.txt','w') as f:
  f.write('Hello, Python!')

ya verás 'new_file.txt' ha sido creado en su directorio de trabajo.

Ahora, ejecute la celda de código anterior nuevamente.

Ejecute el siguiente comando en su terminal:

cat new_file.txt

# Output: Hello, Python!

Idealmente, hemos escrito en el archivo dos veces.entonces Hello, Python! ¿Se debe imprimir dos veces?

Pero verás que solo se imprime una vez.Bueno, es porque cuando estás en Escribe (w) modo, básicamente cubrir El contenido del archivo con el nuevo contenido.

si tu quieres añadir hasta el final del archivo sin sobrescribir el contenido existente, debe estar en adicional modelo. Verá cómo hacerlo en la siguiente sección.

Cómo agregar a un archivo en Python

Si desea agregar contenido al archivo, sin sobrescribirlo, en adicional modelo.

Para hacer esto, use `'a'Una especie de por adicional– y especifique explícitamente el modo.

A continuación, ejecute la siguiente celda de código dos veces.

with open('new_file.txt','a') as f:
  f.write('Hello, Python!')

Observe cómo el texto ahora se imprime dos veces a medida que lo agregamos al archivo.

cat new_file.txt

# Output: Hello, Python!Hello, Python!

En conclusión

Resumamos rápidamente lo que hemos discutido en este tutorial.

  • Ha visto operaciones comunes de E/S de archivos, como leer, escribir y agregar archivos.
  • Además, aprendiste a usar Búsqueda() un método para mover el puntero del archivo a una ubicación específica, y
  • cómo utilizar Decir() método para recuperar la posición actual del puntero del archivo.

Espero que hayas encontrado útil este tutorial. Ahora que sabe cómo usar archivos de texto en Python, aprenda a usar archivos JSON en Python.

Artículo Recomendado:  ¿Cómo habilitar IPv6 en Nginx y Apache?

Publicaciones relacionadas

Deja una respuesta

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