战w9diwdo 发表于 2015-9-19 20:15:29

python中seek()函数的一个小问题

seek(offset, from)
为什么seek(10, 0)从开始移动十个好使?
为什么seek(10, 1)以及 seek(10, 2)不好使?
系统会对其报错:
Traceback (most recent call last):
File "<pyshell#10>", line 1, in <module>
    f.seek(10, 1)
io.UnsupportedOperation: can't do nonzero cur-relative seeks
为什么只有seek(0, 1或2)不报错?这样的话还有什么意义?

screenswindow 发表于 2015-9-22 11:01:11

seek(10, 0)从开始移动十个好使?--只要你够10个就好使
seek(10, 1) 1代表当前位置,然而你当前位置是多少,如果当前往后10个字符没有了,当然不好使了
seek(10, 2)从末尾开始,再往后10个字符,什么鬼,后面已经没有了,写末尾的时候应该写seek(-10, 2),从后往前10个
然后,f.seek() 是不返回值的,只是指针移动,定位到0的意思是不用再次打开文件,因为上次读取一般位置不是初始位置。

yade1234 发表于 2018-1-5 17:03:51

虽然是挖坟,但是你说的不对。已r模式,只支持从头开始偏移,不支持当前位置和结尾偏移。除非打开方式是以rb即二进制方式打开才行。但是读个文档都显示为二进制格式,根本都识别不了内容了。不知道Python如何考虑的。现在我也是碰到这个问题在头疼。

小白a123456 发表于 2022-1-23 13:00:43

screenswindow 发表于 2015-9-22 11:01
seek(10, 0)从开始移动十个好使?--只要你够10个就好使
seek(10, 1) 1代表当前位置,然而你当前位置是 ...

三楼兄弟才是对的
页: [1]
查看完整版本: python中seek()函数的一个小问题