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:
- 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.
- 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.
- 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 r
coloca 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.
- write() : Inserta la string str1 en una sola línea en el archivo de texto.
File_object.write(str1)
- 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 with
declaració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