Cómo leer desde un archivo en Python

Python proporciona funciones integradas para crear, escribir y leer archivos. Hay dos tipos de archivos que se pueden manejar en python, archivos de texto normales y archivos binarios (escritos en lenguaje binario, 0s y 1s).

  • Archivos de texto: en este tipo de archivo, cada línea de texto termina con un carácter especial llamado EOL (fin de línea), que es el carácter de nueva línea (‘\n’) en Python de forma predeterminada.
  • Archivos binarios: en este tipo de archivo, no hay un terminador para una línea y los datos se almacenan después de convertirlos a un lenguaje binario comprensible por máquina.

Nota: Para obtener más información sobre el manejo de archivos, haga clic aquí .

Modo de acceso

Los modos de acceso gobiernan el tipo de operaciones posibles en el archivo abierto. Se refiere a cómo se usará el archivo una vez que se abra. Estos modos también definen la ubicación del identificador de archivo en el archivo. El identificador de archivo es como un cursor, que define desde dónde se deben leer o escribir los datos en el archivo. Los diferentes modos de acceso para leer un archivo son:

  1. Solo lectura (‘r’): abre un archivo de texto para leer. El mango se coloca al principio de la lima. Si el archivo no existe, genera un error de E/S. Este es también el modo predeterminado en el que se abre el archivo.
  2. Leer y escribir (‘r+’): abre el archivo para leer y escribir. El mango se coloca al principio de la lima. Genera un error de E/S si el archivo no existe.
  3. Agregar y leer (‘a+’): abre el archivo para leer y escribir. El archivo se crea si no existe. El mango se coloca al final de la lima. Los datos que se están escribiendo se insertarán al final, después de los datos existentes.

Nota: Para saber más sobre el modo de acceso haga clic aquí .

Abrir un archivo

Se hace usando la open()función. No es necesario importar ningún módulo para esta función.

Sintaxis:

File_object = open(r"File_Name", "Access_Mode")

El archivo debe existir en el mismo directorio que el archivo del programa python; de lo contrario, la dirección completa del archivo debe escribirse en lugar del nombre del archivo.

Nota: se rcoloca antes del nombre de archivo para evitar que los caracteres en la string de nombre de archivo se traten como caracteres especiales. Por ejemplo, si hay \temp en la dirección del archivo, \t se trata como el carácter de tabulación y se genera un error de dirección no válida. La r hace que la string sea cruda, es decir, dice que la string no tiene ningún carácter especial. La r se puede ignorar si el archivo está en el mismo directorio y no se coloca la dirección.

# Open function to open the file "MyFile1.txt"  
# (same directory) in read mode and 
file1 = open("MyFile.txt", "r") 
    
# store its reference in the variable file1  
# and "MyFile2.txt" in D:\Text in file2 
file2 = open(r"D:\Text\MyFile2.txt", "r+") 

Aquí, file1 se crea como objeto para MyFile1 y file2 como objeto para MyFile2.

Cerrar un archivo

close()La función cierra el archivo y libera el espacio de memoria adquirido por ese archivo. Se utiliza cuando ya no se necesita el archivo o si se va a abrir en un modo de archivo diferente.

Sintaxis:

File_object.close()
# Opening and Closing a file "MyFile.txt" 
# for object name file1. 
file1 = open("MyFile.txt", "r") 
file1.close() 

Lectura de un archivo

Hay tres formas de leer datos de un archivo de texto.

  • read() : Devuelve los bytes leídos en forma de string. Lee n bytes, si no se especifica n, lee todo el archivo.
    File_object.read([n])
    
  • readline() : lee una línea del archivo y regresa en forma de string. Para n especificado, lee como máximo n bytes. Sin embargo, no lee más de una línea, incluso si n excede la longitud de la línea.
    File_object.readline([n])
    
  • readlines() : lee todas las líneas y las devuelve como cada línea un elemento de string en una lista.
    File_object.readlines()
    

Nota: ‘\n’ se trata como un carácter especial de dos bytes.

Ejemplo:

# Program to show various ways to 
# read data from a file. 
  
# Creating a file
file1 = open("myfile.txt", "w")
L = ["This is Delhi \n", "This is Paris \n", "This is London \n"]
  
# Writing data to a file
file1.write("Hello \n") 
file1.writelines(L)
file1.close()  # to change file access modes
  
file1 = open("myfile.txt", "r+")
  
print("Output of Read function is ")
print(file1.read())
print()
  
# seek(n) takes the file handle to the nth
# bite from the beginning. 
file1.seek(0)
  
print("Output of Readline function is ")
print(file1.readline())
print()
  
file1.seek(0)
  
# To show difference between read and readline 
print("Output of Read(9) function is ")
print(file1.read(9))
print()
  
file1.seek(0)
  
print("Output of Readline(9) function is ")
print(file1.readline(9))
print()
  
file1.seek(0)
  
# readlines function 
print("Output of Readlines function is ")
print(file1.readlines())
print()
file1.close() 

Producción:

Output of Read function is
Hello
This is Delhi
This is Paris
This is London


Output of Readline function is
Hello


Output of Read(9) function is
Hello
Th

Output of Readline(9) function is
Hello


Output of Readlines function is
['Hello \n', 'This is Delhi \n', 'This is Paris \n', 'This is London \n']

con declaración

with La declaración en Python se usa en el manejo de excepciones para hacer que el código sea más limpio y mucho más legible. Simplifica la gestión de recursos comunes como flujos de archivos. A diferencia de las implementaciones anteriores, no hay necesidad de llamar file.close()cuando se usa con la declaración. La withdeclaración en sí misma garantiza la adquisición y liberación adecuadas de recursos.

Sintaxis:

with open filename as file:
# Program to show various ways to
# read data from a file.
  
L = ["This is Delhi \n", "This is Paris \n", "This is London \n"]
  
# Creating a file
with open("myfile.txt", "w") as file1:
    # Writing data to a file
    file1.write("Hello \n")
    file1.writelines(L)
    file1.close()  # to change file access modes
  
with open("myfile.txt", "r+") as file1:
    # Reading form a file
    print(file1.read())

Producción:

Hello
This is Delhi
This is Paris
This is London

Nota: Para saber más sobre la declaración with, haga clic aquí .

Publicación traducida automáticamente

Artículo escrito por nikhilaggarwal3 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

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