求大神解释关于python3 File.seek函数问题

Fuoluo 2021-04-02 01:57:33
f = open('aa.txt', 'rb+')
f.write(b'0123456789abcdef')
f.seek(-1)

看教程上说seek是定位指针,参数为负数代码是文件倒数第几位开始,但是我这段代码报错
f.seek(-1)
OSError: [Errno 22] Invalid argument


然后我代码换成了
import random
f=open('data.txt','w+')
for i in range(100000):
f.write(str(random.randint(1,100))+'\n')

f.seek(-1)
print(f.read())
f.close()

报错如下:
f.seek(-1)
ValueError: negative seek position -1


f.seek(0)都是没问题的 换成负数就一直到都是错误的,求解释
...全文
144 3 打赏 收藏 举报
写回复
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
DuskCrow_ 2021-04-06
seek(offset,whence=0) 第二个参数是给第一个参数指定起始位置的,默认值是0,代表从文件头算起 seek(-1,2),如果第一个数是负数话,试试把第二个参数设置为2,代表从文件未尾算起。
  • 打赏
  • 举报
回复
chuifengde 2021-04-02
是负数,则要用二进制方式打开文件
  • 打赏
  • 举报
回复
Fuoluo 2021-04-02
f = open('aa.txt', 'rb+')这不是二进制打开的么
  • 打赏
  • 举报
回复
发帖
脚本语言

3.7w+

社区成员

JavaScript,VBScript,AngleScript,ActionScript,Shell,Perl,Ruby,Lua,Tcl,Scala,MaxScript 等脚本语言交流。
社区管理员
  • 脚本语言(Perl/Python)社区
  • ITBOB • 鲍勃
加入社区
帖子事件
创建了帖子
2021-04-02 01:57