问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

Python怎么修改一个文件?

发布网友 发布时间:2022-04-25 17:01

我来回答

2个回答

懂视网 时间:2022-05-10 18:40

本篇文章给大家带来的内容是关于Python下如何实现文件的修改操作?(附示例),有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助。

今天我们来讨论下python下如何实现:打开文件—修改文件——关闭文件的操作

本文采用逐行解释的方法。

思路:

第一步:把文件读取出来
第二部:再用'w'模式写入到新文件
第三部:把原文件删除,并且把新文件重命名回原文件
这样就实现了文件的修改操作

我们先来看看原文件的内容

with open('xiakexing') as old_file:
 print(old_file.read())
赵客缦胡缨,吴钩霜雪明。银鞍照白马,飒沓如流星。
十步杀一人,千里不留行。事了拂衣去,深藏身与名。
闲过信陵饮,脱剑膝前横。将炙啖朱亥,持觞劝侯嬴。
三杯吐然诺,五岳倒为轻。眼花耳热后,意气素霓生。
救赵挥金锤,邯郸先震惊。千秋二壮士,烜赫大梁城。
纵死侠骨香,不惭世上英。谁能书阁下,白首太玄经。

我们想要做的修改是把第二行的千里不留行改成“万里不流行”
补充说明:用with open()格式可以同时打开两个文件,本例中实际上是打开文件xiakexing,并且创建文件xiakexing.bak,分别创建对应的文件对象old_file和new_file

with open('xiakexing') as old_file,open('xiakexing.bak','w') as new_file:
#采用for循环从文件对象old_file里迭代地读取文件,简单来讲就是一行一行地读取文件,这样内存中只存储了一行文件的内容,节省了内存,也防止文件过大时造成的“超载”
 for i in old_file:
 if '千里不留行' in i: #这里每读取一行我们就对其进行条件判断,判断该行是否是我们要找的那一行
  i = i.replace('千','万')#当找到该行时,把该行的内容替换成我们想要的内容
#每读取一行我们就在新文件中写入一行,不管该行有没有变化,总之就是读一行、写一行、读一行、写一行
 new_file.write(i) 
#当for循环结束后,文件也已经被我们修改完毕了,这时应该删除旧文件,重命名新文件,为了实现这一目的,我们引入了os模块,os模块内主要是一些和操作系统有关的函数
import os  
os.remove('xiakexing') #删除原文件
os.rename('xiakexing.bak','xiakexing') #把新文件重命名回原文件名,最终实现了文件的修改

然后我们再来看看文件的内容

with open('xiakexing') as old_file:
 print(old_file.read())
赵客缦胡缨,吴钩霜雪明。银鞍照白马,飒沓如流星。
十步杀一人,万里不留行。事了拂衣去,深藏身与名。
闲过信陵饮,脱剑膝前横。将炙啖朱亥,持觞劝侯嬴。
三杯吐然诺,五岳倒为轻。眼花耳热后,意气素霓生。
救赵挥金锤,邯郸先震惊。千秋二壮士,烜赫大梁城。
纵死侠骨香,不惭世上英。谁能书阁下,白首太玄经。

这样,我们就实现了文件的修改。由于我们使用的是with open() as 的方法,所以不需要文件关闭的步骤,如果是通过file=open()的方式开打的文件,则必须在末尾加上关闭文件的语句。

热心网友 时间:2022-05-10 15:48

通常的做法是先将文件的所有内容读入内存,修改后再全部写回原文件。

如果文件中所有数据的偏移地址都是固定的,那么可以以r+方式打开文件,将文件指针移动到要修改的数据处,写入新数据覆盖即可。追问也就是说r+模式中直接移动指针到开头,写入数据,那么后面的全都会被覆盖。

是吗

python 怎么修改文件中的某个字符,求帮忙改下代码

文件中的内容支持a+追加模式, 不能直接修改。你可以把内容读到内存,修改好内存的数据。将原来文件重命名为res_old.h,然后再新建文件res.h写入你需要的内容

Python中怎么修改文件中的某一行内容。(文件很大,不能读取全部内容...

1. read() 接口的问题 f = open(filename, 'rb') f.read()我们来读取 1 个 nginx 的日至文件,规模为 3Gb 大小。read() 方法执行的操作,是一次性全部读入内存,显然会造成:MemoryError ...也即会发生内存溢出。2. 解决方案:转换接口3. 真正 Pythonic 的方法 真正 Pythonci 的方法,使用 wit...

用python读取文本文件,对读出的每一行进行操作,这个怎么写?

把你的代码改一下 f = open("test.txt", "r") while True: line = f.readline() if line: pass # do something here line=line.strip() p=line.rfind('.') filename=line[0:p] print "create %s"%line else: breakf.close()写得可能罗嗦些,就是...

Python如何实现将一个文件夹里面的文件重命名并放到另外一个文件夹里面...

import reimport osdef get_file_list(folder): file_list = []; for root, dirs, files in os.walk(folder): for f in files: path=root+os.path.sep+f file_list.append(path) return file_listdef get_re_file_list(file_list,re_rule): file_list_re=[] ...

如何用python批量改文件名

引入os模块(python中操作文件的模块)。2 定义修改名称的函数rename。在rename函数中定义一个储存路径的变量path,并将要修改文件名的文件夹的路径赋值给该变量。3 继续向函数中添加功能代码 4 最后调用这个rename函数这个脚本就写完了。执行这个文件,就会将文件夹下所有的文件改成 这里是你要改的文件...

用python怎么修改远程主机上的文件内容

可以考虑用paramiko模块,ssh上去,执行命令操作。也可以用socket,一个做server,一个做client,来操作。

python读取txt文件,查找到指定内容,并做出修改

def modifyip(tfile,sstr,rstr):try:lines=open(tfile,'r').readlines()flen=len(lines)-1 for i in range(flen):if sstr in lines[i]:lines[i]=lines[i].replace(sstr,rstr)open(tfile,'w').writelines(lines)except Exception,e:print e modifyip('a.txt','a','A')...

python怎么读取修改csv文件,并且重新创建在一个文件夹中

参考方法如下:逐行处理:for line in open("samples/sample.csv"):title, year, director = line.split(",") //以“,”号为分割,按逗号将数据分成三部分;print year, title 使用csv模块处理:import csv reader = csv.reader(open("samples\sample.csv"))for title, year, director in ...

python怎么修改某个内存地址的数据

使用ctypes模块调用WriteProcessMemory函数,在创建程序进程后,就可以修改该程序指定内存地址。WriteProcessMemory的函数原型如下所示。BOOL WriteProcessMemory(HANDLE hProcess,LPVOID lpBaseAddress,LPCVOID lpBuffer,SIZE_T nSize,SIZE_T* lpNumberOfBytesWritten );其参数含义如下。· hP...

学生党自学Python的自动化操作

Python办公自动化10个高频操作 遍历文件夹 批量操作的前提就是对文件夹进行遍历,使用S模块可以轻松的遍历文件夹,os.walk 遍历后产生三个参数: 1.当前文件夹路径 2.包含文件夹名称[列表形式] 3.包含文件名称[列表形式 代码如下,大家可以根据自己的路径进行修改 当手上的需求明确有获取给定路径各级文件夹下所有符合条...

扫描文件怎么修改文字 文件怎么改变修改日期 python怎么打开文件 python 中怎么输入文件 怎么修改文件格式 批量修改文件修改日期 微信文件打开方式怎么修改 怎么修改PDF文档内容 已修改的文档怎么还原
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
做了好乱的梦,求解! ae缺少p1效果是要装什么插件? ...荣耀》中“网络诊断”居然可以测定酒店有无摄像头,这是好事吗? 七叶一枝花花苞里面的红米是什么 q了是什么意思? ...Q就可以,格式也没错,也只几十K,别人发给我都可以,哪里出问题了... 显的么说友Q在微 ?Q上新示怎让在说我空里动间的态不更好博 诺诗兰户外品牌怎么样 新隋唐英雄传张卫健萧妃是刘小庆吗 红尖椒和朝天椒介绍!红尖椒和朝天椒哪个辣? 农业银行atm机提示信用卡授信额度10000下卡稳吗? 农行信用卡用了超限额度对提额有影响吗? 包饺子有没有什么技巧? 第一次包饺子,有什么包饺子的技巧吗? 你觉得租房年前好还是年后好?为什么? 包饺子的小技巧有哪些? 想租房子不知道头年租好还是过年租好啊? 包饺子有哪些我们不知道的小技巧? 年前租房好,还是年后租房好 年初租房容易吗 你觉得哪个季节租房最好? 年头年尾好租房子么? 包饺子有哪些小窍门? 北京过年后租房子好租吗 相比春节前,春节后好租房子吗 过年好租房子吗 大家觉得是年前租房好,还是年后租房好呢? 什么时候租房才好租呢? 年底房子好不好出租 为什么说年底租房最划算? python更改文件名称 农业银行信用卡受限制是什么意思? python里怎样替换,修改文本内容 农行atm显示信用卡授信额度 Python如何将文件夹中的所有txt文件的内容替换? 收到农业银行短信授信额度是什么意思 农业银行电脑显示授信额度下限? 怎么用python批量修改一组文件名? 用python修改文件中指定的行数 梦见好多美女在鱼缸中跳舞 梦见和一个女人在水里跳舞 梦到和喜欢的美女跳舞有什么预兆? 梦见4个漂亮女人唱歌、跳舞是怎么回事?请懂行的进来说说 为什么我上传较大的邮件附件会失败? 梦见街上两个女的跳舞还脱了衣服 梦见众多女人穿华丽服装跳集体舞? 电信189邮箱为什么上传较大的邮件附件会失败? 梦见自己家漏水,把床上漏了许多水还带了个女人在老屋里楼上跳舞? 为什么我上传较大的邮件附件时会失败啊? 梦见清澈见底得大湖有2只雪白粉色耳朵的大蛇母女,出水与我做好朋友,能唱歌跳舞,能变成美女、能下水?