控制檔案內指標移動
阿新 • • 發佈:2020-08-08
一、f.seek(位元組個數,模式)
模式有三種
0:參照檔案的開頭
1:參照當前所在的位置
2:參照檔案末尾的位置
# 注意:
# 1、無論何種模式,都是以位元組單位移動,只有t模式下的read(n)的n代表的是字元個數
with open('a.txt',mode='rt',encoding='utf-8') as f:
data=f.read(6)
print(data)
with open('a.txt',mode='rb') as f:
data=f.read(6)
print(data.decode('utf-8'))
# 2、只有0模式可以在t模式下使用,而0、1、2都可以在b模式下用
# 示例
with open('a.txt',mode='rb') as f:
f.seek(6,0)
print(f.read().decode('utf-8'))
f.seek(16,1)
print(f.tell())
f.seek(-3,2)
print(f.read().decode('utf-8'))
f.seek(0,2)
print(f.tell())
with open('b.txt',mode='wt',encoding='utf-8') as f:
f.seek(10,0)
print(f.tell())
f.write("你好")
# 應用1:tail -f access.log
import time
with open('access.log',mode='rb') as f:
f.seek(0,2)
while True:
line=f.readline()
if len(line) == 0:
time.sleep(0.3)
else:
print(line.decode('utf-8'),end='')