fd.seek() IOError: [错误 22] 无效参数
我的Python解释器(版本2.6.5)在以下代码部分抛出了上述错误:
fd = open("some_filename", "r")
fd.seek(-2, os.SEEK_END) #same happens if you exchange the second arg. w/ 2
data=fd.read(2);
最后调用的是fd.seek()
Traceback (most recent call last):
File "bot.py", line 250, in <module>
fd.seek(iterator, os.SEEK_END);
IOError: [Errno 22] Invalid argument
奇怪的是,这个错误发生在我执行整个代码的时候,而不是在我只执行文件打开的那部分代码时。在执行这部分代码时,打开的文件肯定是存在的,磁盘也没有满,变量“iterator”包含的值和第一个代码块中的值是一样的。我可能犯了什么错误呢?
提前谢谢你们!
1 个回答
8
来自 lseek(2)
的说明:
EINVAL
这个错误表示你传入的参数
whence
不是三个有效的选项之一:SEEK_SET、SEEK_CUR 或 SEEK_END;或者你计算出来的文件位置是负数,或者超出了可以查找的设备的末尾。
所以,记得仔细检查一下 iterator
的值。