当前位置: 首页 > 工具软件 > Seeks > 使用案例 >

Python调用seek(pos,mode)方法报错Can‘t do nonzero cur-relative seeks

杜翰林
2023-12-01

在Python中IO操作调用seek(pos,mode)方法时,出现异常错误:OSError:Can't do nonzero cur-relative seeks其示例代码如下:

from io import StringIO

def demo():
    str_io = StringIO()
    str_io.write("Python是世界上最好的语言")
    str_io.seek(2,1)

demo()

上述这段代码,使用的是StringIO调用seek(2,1)方法,一般情况下如果操作的是一段字符串的话,建议尽量不要使用seek(pos,1|2)方法。虽然StringIO调用seek(pos,1|2)方法可能会报错,然而去寻找这个错误的解决方法是没有意义的(因为使用StringIO调用seek(pos,1|2)方法的使用场景的频率是比较低的),更多的时候,使用seek(pos,1|2)方法报错关注更多的是对于文件的操作,示例代码如下:

from io import StringIO

def demo():
    f=open("E:\\file.txt","r")
    f.seek(2,1) #从上一次偏移到的位置再偏移2个长度单位
    print(f.tell())

demo()

执行上述代码会报错:

io.UnsupportedOperation: can't do nonzero cur-relative seeks
 类似资料: