求大神解释关于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)都是没问题的 换成负数就一直到都是错误的,求解释
...全文
419 3 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
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+')这不是二进制打开的么

37,743

社区成员

发帖
与我相关
我的任务
社区描述
JavaScript,VBScript,AngleScript,ActionScript,Shell,Perl,Ruby,Lua,Tcl,Scala,MaxScript 等脚本语言交流。
社区管理员
  • 脚本语言(Perl/Python)社区
  • WuKongSecurity@BOB
加入社区
  • 近7日
  • 近30日
  • 至今

试试用AI创作助手写篇文章吧