文件的修改

# with open('a.txt',mode='r+t',encoding='utf-8') as f:
#     print(f.writable())
    # f.seek(7,0)
    # f.write('SB')

# with open('a.txt',mode='r+t',encoding='utf-8') as f:
#     f.seek(3,0)
#     f.write('h')

# 由上例得出结论:硬盘都是用新内容覆盖旧内容,没有修改的概念,但是内存是可以修改的
# 如何修改文件:
# 思路:把硬盘的内容先读入内存,然后在内存中修改完毕后,再覆盖会硬盘
# 方式一:
# 步骤:
# 1、先将硬盘中文件的内容全部读入内存,然后在内存中修改完毕得到一个修改好的结果
# 2、将修改的结果覆盖回原文件
# 优点: 不耗费硬盘
# 缺点:耗费内存
# with open('a.txt',mode='rt',encoding='utf-8') as f1:
#     data=f1.read()
#     res=data.replace('lxx','SB')
#
# with open('a.txt',mode='wt',encoding='utf-8') as f2:
#     f2.write(res)
 
 
# 方式二:
# 步骤:
#1、循环读取源文件内容,一行行修改一行行写入一个新的临时文件
#2、删除源文件
#3、将临时文件重命名为源文件名
# 优点:节省内存
# 缺点:耗费硬盘空间
# import os
# with open('a.txt',mode='rt',encoding='utf-8') as f1,\
#         open('.a.txt.swp',mode='wt',encoding='utf-8') as f2:
#     for line in f1:
#         res=line.replace('SB','lxx')
#         f2.write(res)
#
# os.remove('a.txt')
# os.rename('.a.txt.swp','a.txt')
posted @ 2020-08-21 17:37  Οo白麒麟оΟ  阅读(163)  评论(0编辑  收藏  举报