• io.UnsupportedOperation: can't do nonzero cur-relative seeks”错误


    在使用seek()函数时,有时候会报错为  “io.UnsupportedOperation: can't do nonzero cur-relative seeks”,代码如下:

    >>> f=open("aaa.txt","r+")    #以读写的格式打开文件aaa.txt
    >>> f.read()    #读取文件内容
    'my name is liuxiang,i am come frome china'
    >>> f.seek(3,0)       #从开头开始偏移三个单位(偏移到“n”)
    3
    >>> f.seek(5,1)     #想要从上一次偏移到的位置(即“n”)再偏移5个单位
    Traceback (most recent call last):
      File "<stdin>", line 1, in <module>
    io.UnsupportedOperation: can't do nonzero cur-relative seeks

    照理说,按照seek()方法的格式file.seek(offset,whence),后面的1代表从当前位置开始算起进行偏移,那又为什么报错呢?

    这是因为,在文本文件中,没有使用b模式选项打开的文件,只允许从文件头开始计算相对位置,从文件尾计算时就会引发异常。将  f=open("aaa.txt","r+")  改成

    f = open("aaa.txt","rb")   就可以了 

    改正后的代码如下图:

    >>> f = open("aaa.txt","rb")
    >>> f.seek(3,0)
    3
    >>> f.seek(5,1)
    8
  • 相关阅读:
    NYOJ--703
    CDOJ--1369
    NYOJ--205
    NYOJ--520
    NYOJ--69
    CDOJ--1237
    [gist]Android SHA-1
    ConnectionAbortedError: [WinError 10053] 你的主机中的软件中止了一个已建立的连接
    SyntaxError:unexpected EOF while parsing(<string,line 0>)
    Django之get请求url的参数
  • 原文地址:https://www.cnblogs.com/Centwei/p/14380588.html
Copyright © 2020-2023  润新知