博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
文件修改
阅读量:5060 次
发布时间:2019-06-12

本文共 1125 字,大约阅读时间需要 3 分钟。

# _*_ coding: utf-8 _*_ # 须知一: # 硬盘空间无法修改,硬盘中的数据更新都是用新的内容覆盖旧的内容 # 内存空间可以修改 # with open('a.txt','r+t',encoding='utf-8') as f: #     f.seek(4,0) #     print(f.tell()) #     f.write('wocalei') # 须知二: # 文件对应的是硬盘空间,硬盘不能修改因为文件本质也不能修改, # 我们看到文件的内容可以修改,是如何实现的     # 将硬盘中文件内容读入内存,然后在内存中修改完毕后再覆盖回硬盘     # 硬盘-----》内存  (修改)---覆盖----》 硬盘 # 具体的实现方式分为两种:     # 一、         # 将文件内容发一次性全部读入内存,         # 然后在内存中修改完毕后再覆盖写回原文件         # 优点:再文件修改过程中同一份数据只有一份         # 缺点:会过多的占用内存 # with open('db.txt',mode='rt',encoding='utf-8') as f: #     data = f.read() # # with open('db.txt',mode='wt',encoding='utf-8') as f: #     f.write(data.replace('kevin','SB'))     # 二、         # 以读的方式打开原文件,以写的方式打开一个临时文件,         # 一行行读原文件内容,修改完后写入临时文件         # 修改完后写入临时文件,删掉原文件,将临时文件重命名为原文件名         # 优点:不会占用过多的内存         # 缺点:在文件修改过程中同一份数据存了两份 import os with open('db.txt',mode='rt',encoding='utf-8') as read_f,\     open('.db.txt.swap',mode= 'wt',encoding='utf-8') as write_f:     for line in read_f:         write_f.write(line.replace('SB','kevin')) os.remove('db.txt') os.renames('.db.txt.swap','db.txt')

转载于:https://www.cnblogs.com/OutOfControl/p/9688640.html

你可能感兴趣的文章
Flask16 项目结构、flask_script插件
查看>>
ansi 控制码表及颜色代码
查看>>
WDA基础一:激活相关服务
查看>>
Javascript中的this关键字、call和apply
查看>>
jquery 抽奖
查看>>
java的微信小程序退款笔记
查看>>
Centos7 安装Oracle11g Express Edition
查看>>
java项目开发实践经验之一:使用hibernate的几点经验总结
查看>>
mabits环境搭建和基础入门
查看>>
myeclipse自动化提示
查看>>
SimpleAdapter 列表
查看>>
2018回归博客园
查看>>
Excelutil 工具类
查看>>
JS表单验证-12个常用的JS表单验证
查看>>
Android开发:TableFixHeaders源码分析
查看>>
Bootstrap Popover(弹出框)弹出自定义格式代码
查看>>
Android零基础入门第87节:Fragment添加、删除、替换
查看>>
DNA Sorting--hdu1379
查看>>
文件上传
查看>>
Java 并发:Future FutureTask
查看>>