Cuando se ejecuta el siguiente código Python:seek(), a continuación, leer(), a continuación, escribir() en Python
>>> f = open(r"myfile.txt", "a+")
>>> f.seek(-1,2)
>>> f.read()
'a'
>>> f.write('\n')
me sale el siguiente (útil) excepción:
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
IOError: [Errno 0] Error
El mismo Lo que sucede cuando se abre con "r +".
¿Se supone que esto falla? ¿Por qué?
Editar:
- Obviamente, esto es sólo un ejemplo, no es lo que en realidad estoy tratando de ejecutar. Mi objetivo real era verificar que los archivos finalicen con "\ n", o agregar uno, antes de agregar las nuevas líneas.
- Estoy trabajando con Windows XP, y el problema existe tanto en Python 2.5 como en Python 2.6.
I lograron pasar por alto el problema llamando a buscar() de nuevo:
f = open (r "miarchivo.txt", "a +")
f.seek (-1 , 2)
f.read()
'a'
f.seek (-10,2)
f.write ('\ n')
Los parámetros reales de la segunda llamada de buscar no parece importar.
¿Qué sistema operativo y versión de python estás usando? Esto parece funcionar bien con Python 2.4.3 bajo Linux 2.6.17. –
¿Eso es exactamente lo que quieres hacer, o es una simplificación? Si esa es la tarea a mano, ¿por qué no simplemente abrir como 'a' y luego llamar a f.write, sin ninguna búsqueda intermedia? – kyle
También (para Lance), no está funcionando en absoluto en Python 2.5 en Windows XP. – kyle