fd.seek() IOError: [Errno 22] Invalid argument

陌路散爱 提交于 2019-12-07 02:17:27

问题


My Python Interpreter (v2.6.5) raises the above error in the following codepart:

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);

last call is 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

The strange thing with this is that the exception occurs just when executing my entire code, not if only the specific part with the file opening. At the runtime of this part of code, the opened file definitely exists, disk is not full, the variable "iterator" contains a correct value like in the first codeblock. What could be my mistake?

Thanks in advance


回答1:


From lseek(2):

EINVAL

whence is not one of SEEK_SET, SEEK_CUR, SEEK_END; or the resulting file offset would be negative, or beyond the end of a seekable device.

So double-check the value of iterator.



来源:https://stackoverflow.com/questions/2724015/fd-seek-ioerror-errno-22-invalid-argument

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!