Escribir en 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í .

Tabla de contenidos

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 escritura (‘w’): abre el archivo para escribir. Para un archivo existente, los datos se truncan y se sobrescriben. El mango se coloca al principio de la lima. Crea el archivo si el archivo no existe.
  2. Escribir y leer (‘w+’): abre el archivo para leer y escribir. Para un archivo existente, los datos se truncan y se sobrescriben. El mango se coloca al principio de la lima.
  3. Solo anexar (‘a’): abre el archivo para escribirlo. 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", "w") 
    
# store its reference in the variable file1  
# and "MyFile2.txt" in D:\Text in file2 
file2 = open(r"D:\Text\MyFile2.txt", "w+") 

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", "w") 
file1.close() 

Escribir en archivo

Hay dos formas de escribir en un archivo.

  1. write() : Inserta la string str1 en una sola línea en el archivo de texto.
    File_object.write(str1)
    
  2. writelines() : para obtener una lista de elementos de string, cada string se inserta en el archivo de texto. Se utiliza para insertar varias strings a la vez.
    File_object.writelines(L) for L = [str1, str2, str3] 
    

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

Ejemplo:

# Python program to demonstrate
# writing to file
  
# Opening a file
file1 = open('myfile.txt', 'w')
L = ["This is Delhi \n", "This is Paris \n", "This is London \n"]
s = "Hello\n"
  
# Writing a string to file
file1.write(s)
  
# Writing multiple strings
# at a time
file1.writelines(L)
  
# Closing file
file1.close()
  
# Checking if the data is
# written to file or not
file1 = open('myfile.txt', 'r')
print(file1.read())
file1.close()

Producción:

Hello
This is Delhi
This is Paris
This is London

Agregar a un archivo

Cuando el archivo se abre en modo de adición, el identificador se coloca al final del archivo. Los datos que se están escribiendo se insertarán al final, después de los datos existentes. Veamos el siguiente ejemplo para aclarar la diferencia entre el modo de escritura y el modo de adición.

# Python program to illustrate
# Append vs write mode
file1 = open("myfile.txt", "w")
L = ["This is Delhi \n", "This is Paris \n", "This is London \n"]
file1.writelines(L)
file1.close()
  
# Append-adds at last
file1 = open("myfile.txt", "a")  # append mode
file1.write("Today \n")
file1.close()
  
file1 = open("myfile.txt", "r")
print("Output of Readlines after appending")
print(file1.read())
print()
file1.close()
  
# Write-Overwrites
file1 = open("myfile.txt", "w")  # write mode
file1.write("Tomorrow \n")
file1.close()
  
file1 = open("myfile.txt", "r")
print("Output of Readlines after writing")
print(file1.read())
print()
file1.close()

Producción:

Output of Readlines after appending
This is Delhi
This is Paris
This is London
Today


Output of Readlines after writing
Tomorrow

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 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
# write data to a file using with statement
  
L = ["This is Delhi \n", "This is Paris \n", "This is London \n"]
  
# Writing to file
with open("myfile.txt", "w") as file1:
    # Writing data to a file
    file1.write("Hello \n")
    file1.writelines(L)
  
# Reading from file
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 *