dong811019 发表于 2020-9-10 00:04:38

Python,seek的用法不太会,求教

本帖最后由 dong811019 于 2020-9-10 00:05 编辑

f.seek(offset,from),在文件中移动指针的位置,从from(0表示文件头,1表示指针当前位置,2表示文件末尾)处移动offset个字节 #我看到小甲鱼用法时这样写的

>>> f = open('F:/ext.txt')
>>> f.read()
'jdsksdj但肯定喝酒喝酒,但是可说的就是好看快的\n没想到吧\n再来一张吧'

>>> f.seek(0,0)      #问题1, f.seek(0,0)和 f.seek(0)一样的吧,f.seek(0)省略了移动offset字节么?
0
>>> f.read(2)
'jd'

>>> f.seek(2,1)   #问题2,为啥不能当前指针位置继续移动呢?
Traceback (most recent call last):
File "<pyshell#57>", line 1, in <module>
    f.seek(2,1)
io.UnsupportedOperation: can't do nonzero cur-relative seeks

>>> f.seek(-2,2)#问题3,如果从文件末尾移动那是不是offset为负了,这种情况该咋用?
Traceback (most recent call last):
File "<pyshell#60>", line 1, in <module>
    f.seek(-2,2)
io.UnsupportedOperation: can't do nonzero end-relative seeks

1q23w31 发表于 2020-9-10 00:04:39

问题1:

所以它省略了whence字段

问题2:在文本文件中,没有使用b模式选项打开的文件,只允许从文件头开始计算相对位置

问题3:
,按照这个使用,就是负值

dong811019 发表于 2020-9-11 00:33:04

1q23w31 发表于 2020-9-10 00:04
问题1:

所以它省略了whence字段


谢谢,我用二进制的文件可以左右移动文件指针了。请问下你截图是在哪查的呢,一般查到的都没有说whence默认值为0(感觉你找的比较流弊)

1q23w31 发表于 2020-9-11 06:34:42

dong811019 发表于 2020-9-11 00:33
谢谢,我用二进制的文件可以左右移动文件指针了。请问下你截图是在哪查的呢,一般查到的都没有说whence默 ...

找不到图片在哪了,给你个网址:https://www.yiibai.com/python/file_seek.html
页: [1]
查看完整版本: Python,seek的用法不太会,求教