¿Hay alguna forma de abrir un archivo tanto para leer como para escribir?
Como solución, abro el archivo para escribir, lo cierro y lo vuelvo a abrir para leer. Pero, ¿hay alguna manera de abrir un archivo para tanto la lectura como la escritura?
r+
es el modo canónico para leer y escribir al mismo tiempo. Esto no es diferente de usar la llamada al sistema fopen()
ya que file()
/ open()
es sólo una pequeña envoltura alrededor de esta llamada al sistema operativo.
He probado algo así y funciona como se esperaba:
f = open("c:\\log.log", 'r+b')
f.write("\x5F\x9D\x3E")
f.read(100)
f.close()
Donde:
f.read(size) - Para leer el contenido de un archivo, llama a f.read(size), que lee cierta cantidad de datos y los devuelve como una cadena.
Y:
f.write(string) escribe el contenido de la cadena en el archivo, devolviendo Ninguno.
También si abres tutorial de Python sobre lectura y escritura de archivos encontrarás que:
'r+' abre el fichero tanto para leer como para escribir.
En Windows, 'b' anexado al modo abre el archivo en modo binario, por lo que También hay modos como 'rb', 'wb', y 'r+b'.