为了账号安全,请及时绑定邮箱和手机立即绑定

python中的seek问题

python中的seek问题

蛊毒传说 2019-06-07 07:06:56
下面三段代码中的值怎么不一样呢?(1)myfile=open('filename.txt','w+')myfile.write('My name is ella')myfile.seek(10)print myfile.readlines()myfile.close()#运行结果为 [' ella'](2)myfile=open('filename.txt','w')myfile.write('My name is elle')myfile.seek(10)myfile.close()myfile=open('filename.txt','r')print myfile.readlines()myfile.close()#运行结果为:['My name is ella'](3)myfile=open('filename.txt','w')myfile.seek(10)myfile.write('My name is elle')myfile.close()myfile=open('filename.txt','r')print myfile.readlines()myfile.close()#运行结果为['\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00My name is ella']Udonotloveme 您好,不好意思,因为刚学习,所以还是没怎么明白,为什么同样是seek(10),第(1)段代码读到的是第11位以后的字符,但第(2)和(3)读到的还是全部字符呢?对于(1)我open了文件,还没有写东西,就seek(N),这里就会相当于有N个空格?对于(2)我执行了seek(N),才执行的read,读到的怎么是全部的字符呢,之前的seek没起作用?怎么不是从第11位开始读?而对于(3)之前seek(N)后面读的时候,之前的seek又起了作用的。麻烦回复细点哈,万分感谢!
查看完整描述

3 回答

?
慕盖茨4494581

TA贡献1850条经验 获得超11个赞


seek是移动索引的函数,默认是从开始,即0模式的

前两个好理解,最后一个也不难,打开文件的时候,文件时一片干净的缓冲区,所以充塞了null字符,就是\x00,你索引移动10格,自然是跳过了10个null字符,所以前面有10个\x00了

查看完整回答
反对 回复 2019-06-08
  • 3 回答
  • 0 关注
  • 687 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信