Quando si esegue il seguente codice Python:seek(), quindi leggere(), poi scrivere() in python
>>> f = open(r"myfile.txt", "a+")
>>> f.seek(-1,2)
>>> f.read()
'a'
>>> f.write('\n')
ottengo il seguente (utile) eccezione:
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
IOError: [Errno 0] Error
Lo stesso cosa succede quando openning con "r +".
è questo dovrebbe fallire? Perché?
Edit:
- Ovviamente, questo è solo un esempio, non quello che sto effettivamente cercando di eseguire. Il mio obiettivo era verificare che i file terminassero con "\ n", o aggiungerne uno, prima di aggiungere le nuove linee.
- sto lavorando sotto Windows XP, e loro problema esiste sia in Python 2.5 e Python 2.6.
sono riuscito a bypassare il problema chiamando seek() di nuovo:
f = open (r "miofile.txt", "a +")
f.seek (-1 , 2)
f.read()
'a'
f.seek (-10,2)
f.write ('\ n')
i parametri attuali del 2 ° cercare chiamata non sembra avere importanza.
Quale sistema operativo e versione Python stai usando? Questo sembra funzionare bene con Python 2.4.3 sotto Linux 2.6.17. –
È esattamente quello che vuoi fare o è una semplificazione? Se questo è il compito a portata di mano, perché non aprirlo come 'a' e quindi chiamare f.write, senza ricerca intermedia? – kyle
Inoltre (per Lance), non funziona affatto in Python 2.5 su Windows XP. – kyle