天天看点

seek()对中文偏移测试

当前目录下创建“中文测试.txt”文件,写入:

我是大好人aaa
我是大坏人bbb      
f = open('中文测试.txt', 'r+', encoding='utf-8')
# f.write('我是大好人aaa\n')
# f.write('我是大坏人bbb')
f.seek(0)
print(f.read())
f.seek(0)
print(len(f.read()))     # 文字包括\n的个数,总计10个汉字,6个字母和一个换行符\n,共17个
print(f.tell())    # 指针共计,每个汉字3位,每个字母或者数字1位,换行符有\r\n两个,共计38个
print(f.read())    # 所以对于有中文的文件,要看准了修改seek(),如果中文没有改3的倍数,卡到中间
f.close()        # 就会出错或者乱码(在数据编码中可以使用忽略无法编码以及解码的关键字参数)