El modo es ab+
el r
está implícito y 'a'ppend y (' w'rite '+' 'r'ead) son redundantes. Dado que el CPython (es decir pitón regular) file
se basa en la C Stdio FILE
tipo, aquí están las líneas relevantes de la página man (3) fopen:
w + abierto para lectura y escritura. El archivo se crea si no existe , de lo contrario, se trunca. La secuencia se coloca en el comienzo del archivo .
a + Abrir para leer y anexar (escribir al final del archivo). El archivo se crea si no existe . La posición inicial del archivo para leer está al principio de el archivo, pero la salida es siempre adjuntada al final del archivo.
Con la "b" añadida para hacer que DOS sea feliz. Es probable que desee hacer algo como esto:
>>> f = open('junk', 'ab+')
>>> f
<open file 'junk', mode 'ab+' at 0xb77e6288>
>>> f.write('hello\n')
>>> f.seek(0, os.SEEK_SET)
>>> f.readline()
'hello\n'
>>> f.write('there\n')
>>> f.seek(0, os.SEEK_SET)
>>> f.readline()
'hello\n'
>>> f.readline()
'there\n'
Works. También gracias por señalar os.SEEK_SET en su ejemplo. Creo que intenté abrir el archivo con un + antes pero no pude leer nada. No se me pasó por la mente que la secuencia se colocó al final del archivo ... –
Tenga en cuenta que * debe * * siempre * buscar entre una lectura y una escritura, o una escritura y una lectura. Olvidarse de hacerlo generalmente funcionará en la mayoría de los sistemas, pero no (por ejemplo) en Windows. –