文件的指针位置

f = open('指针测试.txt','a+',encoding='utf-8')  # 这里会直接创建文件,可查看a,w,r,以及分别加加号‘+’和加b的区别
# tell() 显示文件指针
print(f.tell())

# 更改文件指针的位置  seek(偏移量,whence)
# 偏移量是数字,距离whence字符数
# whence:0:文件开头 1:当前位置 2:文件结尾  seek(10,0)  # 可能只有rb或者rb+的时候偏移量才能是负数,也就是倒着数,这里笔者没有具体测试
# f.seek(4,0)
# print(f.read())
# f.seek(0,0)
# f.write('aaaaa\nbbbbb\nccccc\nddddd\n')
# f.seek(4,0)
f.seek(0, 0)
print(f.read())
print('='*10)
# aaaaa\r\nbbbbb,这串数字从第五,第六个位置打印后两位是一样的
f.seek(6, 0)                               # seek 移动鼠标位置(位数)包含\r\n,读取时(位数)不包含\r
print(f.read(2))      # 本来是光标移动到开始0,打印光标后七个的最后一个,和光标移动到第六个,打印后一个是一样的
print('-'*10)         # 第六个位置是\r,第七个位置是\n,所以读七个不包括\r,会打出来b,移动六个,打印后一个则不是b
f.seek(5, 0)          # 可是光标的移动是包括\r\n的,多一位,所以结果会不同
print(f.read(2))

f.close()

# 补充以下系统换行时所占字节位数
# windows  \r\n  \r表示回行首 \n换行
# unix/linux  \n
# mac  \r
# 这里的‘指针测试.txt’文件里的内容如下:
# aaaaa
# bbbbb
# ccccc
# ddddd

                                                                   -------  知识无价,汗水有情,如需搬运请注明出处,谢谢!

你可能感兴趣的:(文件的指针位置)