翼度科技»论坛 编程开发 python 查看内容

python中如何修改文件?

8

主题

8

帖子

24

积分

新手上路

Rank: 1

积分
24
修改的概念:对于硬盘上数据的修改, 根本没有改的操作, 只有覆盖操作
修改的流程:文件的修改都是数据加载到内存中, 在内存中修改完再覆盖入硬盘
一.修改方式一

1.修改过程

  • 先以 r 模式打开源文件,将源文件内容全部读入内存
  • 然后在内存中完成修改
  • 再以 w 模式打开源文件,将修改后的内容覆盖入源文件
2.优缺点

  • 优点 : 不须要硬盘预留足够的空间
  • 缺点 : 会在文件内容过大的情况下,占用过多的内存
3.使用场景
看情况而定, 一般用于文本编辑器, 让用户能看到全部的内容
  1. with open('user.txt',mode='r',encoding='utf-8') as f:
  2.     data=f.read()
  3.     data=data.replace('python','人生苦短,我用python')
  4. with open('user.txt',mode='w',encoding='utf-8') as f:
  5.     f.write(data)
复制代码
二.修改方式二

1.修改过程

  • 以 r 模式打开源文件,然后以 w 模式打开一个临时文件
  • 从源文件中读一行到内存中,修改完毕后直接写入临时文件,循环往复,直到操作完毕所有行
  • 删除源文件,将临时文件名改名为源文件名
2.使用到 OS 模块

  • import os : 导入模块
  • os.remove( ) : 删除
  • os.rename( ) : 改名
3.优缺点

  • 优点 :没有对内存造成过度的占用
  • 缺点:需要硬盘预留出足够的空间来存放临时文件
4.适用场景
看具体而定, 一般用于程序员开发式
  1. import os
  2. with open('user.txt',mode='rt',encoding='utf-8') as read_f,\
  3.         open('user.txt.swap',mode='wt',encoding='utf-8') as write_f:
  4.     for line in read_f:
  5.         if 'python' in line:
  6.             line=line.replace('python','人生苦短,我用python')
  7.         write_f.write(line)
  8. #Python小白学习交流群:725638078
  9. os.remove('user.txt')                  #删除源文件
  10. os.rename('user.txt.swap','user.txt')  #把临时文件名改成源文件名
复制代码
三.文件拷贝示例

可以拷贝任意类型的文件
os.path.isfile()先判断文件是否存在
  1. import os
  2. while 1:
  3.     user_file = input("请输入文件路径>>").strip()
  4.     if not os.path.isfile(user_file):
  5.         print("文件不存在,请重新输入")
  6.         continue
  7.     else:
  8.         copy_path = input("请输入目标路径>>").strip()
  9.         with open(r"%s"%(user_file),"rb")as read_file,\
  10.             open(r"%s"%(copy_path),"ab")as w_f:
  11.             for line in read_file:
  12.                 w_f.write(line)
  13.             if len(user_file) == len(copy_path):
  14.                 print("copy成功")
  15.                 break
复制代码
来源:https://www.cnblogs.com/python1111/p/17311275.html
免责声明:由于采集信息均来自互联网,如果侵犯了您的权益,请联系我们【E-Mail:cb@itdo.tech】 我们会及时删除侵权内容,谢谢合作!

举报 回复 使用道具