在运行以下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+”打开文件时也会发生同样的事情。
这是应该失败的吗?为什么?
编辑:
- 显然,这只是一个例子,不是我真正要执行的操作。我实际的目标是验证文件以“\n”结尾或添加一个新行后再添加新行。
- 我在Windows XP下工作,问题存在于Python 2.5和Python 2.6中。
我通过再次调用seek()来绕过问题:
f = open(r"myfile.txt", "a+")
f.seek(-1,2)
f.read()
'a'
f.seek(-10,2)
f.write('\n')
第二个seek调用的实际参数似乎无关紧要。