fd.seek()IOError:[Errno 22]参数无效

时间:2010-04-27 18:44:41

标签: python python-2.6

My Python Interpreter(v2.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 个答案:

答案 0 :(得分:5)

来自lseek(2)

  

EINVAL

     

不是SEEK_SET之一,   SEEK_CUR,SEEK_END;或结果   文件偏移量为负数,或   超出可寻找设备的终点。

仔细检查iterator的值。