平时我们所使用的word,ppt 等的文档都是先从硬盘里面加载到内存里才显示,所以如果文件比较大的话我们会发现加载的速度会有些慢,world中加载完后我们可以进行任意的修改,因为我们是在内存之中修改后保存到硬盘的,但是硬盘里面的东西是不能随意修改的,因为每一个存储的对象都有一个唯一的地址。
我们在修改内容的方式可以采用牺牲硬盘或是牺牲内存两种方式来实现,以上world,ppt方式就是以牺牲内存的方式实现修改,牺牲硬盘是指新建一个空间,然后程序到原有的内容去循环然后找到需要修改的内容,替换之后存储到新的空间里面。
一、牺牲硬盘的形式修改:
#文件的修改 import os f_file = 'C:/Users/jeep-peng zhang/Desktop/22.txt' f_new_file ='%s.new.txt' %f_file#创建新的地方 f = open(f_file,'r',encoding='gbk') f_new = open(f_new_file,'w',encoding='gbk') old_str ="计算机二级" new_str = "洛天诚巨白" for line in f: if old_str in line:#判断是否在这行 line = line.replace(old_str,new_str) f_new.write(line) f.close() f_new.close() os.rename(f_new_file,f_file)#window路径下会出错需修改路径不显示模式
二、牺牲内存形式修改:
file = 'C:/Users/jeep-peng zhang/Desktop/22.txt' f = open(file,'r+',encoding='gbk') date = f.read() #加载到内存里 f.seek(0)#回到最开始 new_date = date.replace('计算机二级','我是买包888的小行家')#替换 f.write(new_date)
后面可以使用f.truncate()从当前位置截断。