这是我参与8月更文挑战的第2天,活动详情查看:8月更文挑战
1.文件修改功能:
编写文件修改功能,调用函数时,传入三个参数(修改的文件路径,要修改的内容,修改后的内容)既可完成文件的修改
def alter_file(path,src_data,update_data):
with open(path,mode='rt',encoding='utf-8') as f:
res = f.read()
res = res.replace(src_data,update_data)
with open(path,mode='wt',encoding='utf-8') as f:
f.write(res)
print('修改完成!!!')
源文件内容:
1.txt
就在耀的剑意到达巅峰之后不久,旅途也来到了云中漠地。很少有人知道,生活在长安的耀,出生于云中漠地的海市蜃楼之下。他怀着剑仙荣耀归来,却发现幼年记忆里充满异域风情的繁华城池已经不复存在。被贩为奴隶的公主,向他倾诉自己的遭遇:帝国的铁骑越过长城,踏平了整个云中漠地。荒废的城池很快被黄沙掩埋。耀想要救出她,少女却选择了从屈辱中自我了断。
1.首先我们要设置一下参数变量,分别是path,src_data,update_data这三个,我们先把这三个变量写死,最后再封装成函数
path = r'E:\Download\1.txt'
src_data = '耀'
update_data = '李白'
2.现在就是用读的方式打开文件,把文件内容读出来,然后用update_data 去替换一下src_dat
with open(path,mode='rt',encoding='utf-8') as f:
res = f.read()
res = res.replace(src_data,update_data)
3.最后再用写的方式打开这个文件写进去
with open(path,mode='wt',encoding='utf-8') as f:
f.write(res)
print('修改完成!!!')
4.最终封装成一个函数,把变量改成参数
def alter_file(path,src_data,update_data):
with open(path,mode='rt',encoding='utf-8') as f:
res = f.read()
res = res.replace(src_data,update_data)
with open(path,mode='wt',encoding='utf-8') as f:
f.write(res)
print('修改完成!!!')
2.编写tail工具
def tail_tool(path):
import time
with open(path,mode='rb') as f:
f.seek(0,2)
while True:
res = f.readline()
if len(res) == 0:
time.sleep(0.5)
else:
res = res.decode('utf-8')
print(res)
1.这个就是对一个文件的尾行进行实时监测的,我们还是先设置一下参数变量,这里是path文件的路径,然后导入时间模块
path = r'E:\Download\1.txt'
import time
2.然后用读二进制的方式打开,并把指针放到最后一行
with open(path,mode='rb') as f:
f.seek(0,2)
3.然后开始实时监测,就是写一个死循环,每次都读最后一行,如果最后一行长度为0,就说明没有添加内容,就休息一点时间,然后继续读,如果长度不为0,说明有内容添加,就把内容编码成utf-8然后打印出来
while True:
res = f.readline()
if len(res) == 0:
time.sleep(0.5)
else:
res = res.decode('utf-8')
print(res)
4.最后封装成一个函数即可
def tail_tool(path):
import time
with open(path,mode='rb') as f:
f.seek(0,2)
while True:
res = f.readline()
if len(res) == 0:
time.sleep(0.5)
else:
res = res.decode('utf-8')
print(res)
\