При запуске следующего кода Python:
>>> f = open(r"myfile.txt", "a+")
>>> f.seek(-1,2)
>>> f.read()
'a'
>>> f.write('\n')
Я получаю следующее (полезное) исключение:
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
IOError: [Errno 0] Error
То же самое происходит при открытии с "r +".
Это должно провалиться? Зачем?
Edit:
- Очевидно, это всего лишь пример, а не то, что я на самом деле пытаюсь выполнить. Моя настоящая цель состояла в том, чтобы проверить, что файлы заканчиваются на «\ n», или добавить один, прежде чем добавлять новые строки.
- Я работаю под Windows XP, и они существуют как в Python 2.5, так и в Python 2.6.
Мне удалось обойти проблему, снова вызвав seek ():
f = open (r "myfile.txt", "a +")
f.seek (-1,2)
f.read ()
'А'
f.seek (-10,2)
f.write ('\ n')
Фактические параметры второго поискового вызова, кажется, не имеют значения.