文件定位

tell()方法告诉你文件内的当前位置, 换句话说,下一次的读写会发生在文件开头这么多字节之后。

seek(offset [,from])方法改变当前文件的位置。Offset变量表示要移动的字节数。From变量指定开始移动字节的参考位置。

offset – 偏移量,也就是代表需要移动偏移的字节数,注意是按照字节算的,字符编码存每个字符所占的字节长度不一样。

如“好好学习” 用gbk存是2个字节一个字,用utf-8就是3个字节,因此以gbk打开时,seek(4) 就把光标切换到了“飞”和“学”两个字中间。
    但如果是utf8,seek(4)会导致,拿到了飞这个字的一部分字节,打印的话会报错,因为处理剩下的文本时发现用utf8处理不了了,因为编码对不上了。少了一个字节。
  如果from被设为0,这意味着将文件的开头作为移动字节的参考位置。
  如果设为1,则使用当前的位置作为参考位置。
  如果它被设为2,那么该文件的末尾将作为参考位置。

例子:

#打开一个文件
f =open('f.txt','r+')
str_read = f.read(10)
print("读取的字符串是:%s" % str_read)
 
#查找当前位置
position = f.tell()
print("当前位置: %s" %position)
 
#把指针再次重新定位到文件开头
position =f.seek(0,0)
str_read =f.read(10)
print("重新读取读取的字符串是:%s" % str_read)
 
#关闭文件
f.close()
 
结果:
读取的字符串是:2204513940
当前位置: 10
重新读取读取的字符串是:2204513940
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值