1、通用文件copy工具实现
src_file=input('源文件路径>>: ').strip()
dst_file=input('源文件路径>>: ').strip()
with open(r'{}'.format(src_file),mode='rt',encoding='utf-8') as f1,
open(r'{}'.format(dst_file),mode='wt',encoding='utf-8') as f2:
# 方法一:
res=f1.read()
f2.write(res)
# 方法二:
for line in f1:
f2.write(line)
2、基于seek控制指针移动,测试r+、w+、a+模式下的读写内容
#r+
with open(r'h.txt', 'r+b') as f:
print(f.read().decode('utf-8')) # 读取源文件内容
f.seek(0, 0) # 指针移动到开始位置
f.write('哈利路亚'.encode('utf-8')) # 覆盖内容,写下'哈利路亚'
f.seek(0, 0)
print(f.read().decode('utf-8'))
#w+
with open(r'h.txt', 'w+b') as f:
# w+模式打开,清空文本内容
f.write(bytes('happy啦啦啦', encoding='utf-8'))
f.write('yoyoyo切克闹'.encode('utf-8'))
f.seek(5, 0)
# 指针回到开始位置,并移动五个字节
print(f.read().decode('utf-8'))
# a+
with open(r'h.txt', 'a+b') as f:
f.write(' 233lalala '.encode('utf-8'))
f.seek(-10, 2)
f.seek(-5, 1)
res2 = f.read().decode('utf-8')
print(res2)
3、tail -f access.log程序实现
import time
with open('test.txt','rb') as f:
f.seek(0,2)
while True:
line=f.readline()
if line:
print(line.decode('utf-8'))
else:
time.sleep(0.2)