首页 > 其他分享 >02 文件修改的两种方式

02 文件修改的两种方式

时间:2023-03-10 18:01:25浏览次数:33  
标签:02 文件 原文件 utf encoding 修改 mode txt open

"""
@作者: egon老湿
@微信:18611453110
@专栏: https://zhuanlan.zhihu.com/c_1189883314197168128
"""

# with open('a.txt',mode='r+t',encoding='utf-8') as f:
# f.seek(9,0)
# f.write('<男妇女主任>')


# 文件修改的两种方式
# 方式一:文本编辑采用的就是这种方式
# 实现思路:将文件内容发一次性全部读入内存,然后在内存中修改完毕后再覆盖写回原文件
# 优点: 在文件修改过程中同一份数据只有一份
# 缺点: 会过多地占用内存
# with open('c.txt',mode='rt',encoding='utf-8') as f:
# res=f.read()
# data=res.replace('alex','dsb')
# print(data)
#
# with open('c.txt',mode='wt',encoding='utf-8') as f1:
# f1.write(data)


# 方式二:
import os
# 实现思路:以读的方式打开原文件,以写的方式打开一个临时文件,一行行读取原文件内容,修改完后写入临时文件...,删掉原文件,将临时文件重命名原文件名
# 优点: 不会占用过多的内存
# 缺点: 在文件修改过程中同一份数据存了两份
with open('c.txt', mode='rt', encoding='utf-8') as f, \
open('.c.txt.swap', mode='wt', encoding='utf-8') as f1:
for line in f:
f1.write(line.replace('alex', 'dsb'))

os.remove('c.txt')
os.rename('.c.txt.swap', 'c.txt')




f = open('a.txt')
res = f.read()
print(res)

标签:02,文件,原文件,utf,encoding,修改,mode,txt,open
From: https://www.cnblogs.com/wiii/p/17204311.html

相关文章

  • 02 b模式
    """@作者:egon老湿@微信:18611453110@专栏:https://zhuanlan.zhihu.com/c_1189883314197168128控制文件读写内容的模式t:1、读写都是以字符串(unicode)为单位2、只......
  • 04 文件的高级操作:控制文件指针的移动
    """@作者:egon老湿@微信:18611453110@专栏:https://zhuanlan.zhihu.com/c_1189883314197168128"""#指针移动的单位都是以bytes/字节为单位#只有一种情况特殊:#t......
  • 03 文件的操作的其他方法
    """@作者:egon老湿@微信:18611453110@专栏:https://zhuanlan.zhihu.com/c_1189883314197168128"""#一:读相关操作#1、readline:一次读一行#withopen(r'g.txt',mode='rt......
  • java-IO-字节流复制文本文件
          ......
  • java学习日记20230310-排序
    排序 指将一组数据按照指定的顺序排列的过程分类:内部排序:指将需要处理的所有数据都加载到内存储存器中,进行排序,包括交换排序法,选择排序法,插入排序法外部排序:......
  • 宝塔修改php配置文件不生效临时解决办法
    项目要测试上传大文件,php.ini配置一直不生效,改了一直是2M,临时解决办法是修改站点根目录下的.user.ini 文件新增对应配置例如:upload_max_filesize=200M直接在写 .......
  • [联合省选 2022 D2T1] 卡牌
    首先直接按题意模拟一下,发现“所有质数都要被选上”这个条件很烦,因为选上一个卡牌后有很多质数会受到影响,非常不好做。换言之,题中的限制很强。考虑正难则反,钦定一些质数使......
  • 修改Oracle用户密码永不过期
    sqlplussys/system@testassysdbasqlplus/assysdbaselect*fromdba_profilesswheres.profile='DEFAULT'andresource_name='PASSWORD_LIFE_TIME';ALTERP......
  • JAVA WEB项目文件夹上传下载源代码
    ​ 一、功能性需求与非功能性需求要求操作便利,一次选择多个文件和文件夹进行上传;支持PC端全平台操作系统,Windows,Linux,Mac支持文件和文件夹的批量下载,断点续传。刷......
  • GIT修改本地分支名称和远程分支名称
    重命名自己本地的分支gitbranch-m原分支名称新分支名称删除远程自己的原分支gitpush--deleteorigin自己的原分支名称推送新命名的分支gitpushorigin新分......