【python】如何替换文件中的某一行
时间:2011-03-10
来源:互联网
我需要实现这样一个功能:在某个文件中将其中某一行替换掉,此行的关键字是唯一的。
我的思路有两种
第一种是读到此行,直接替换
第二种是将此文件写入到另一个文件中,在中途遇到关键字,则替换。
例如 源文件:c:\a.txt,目标,将"world"替换为"python"
第一种的代码是:
Python code
在这个代码中,我只实现了将原句替换后写入文件,但是有两重要的功能没实现,就是删除此行,另一个就是每次都是写到最后一行,不能在原来行的位置。。。
我在网上搜了下,说open file的参数有一个是"r+a"表示在当前内容尾部写内容,但是我试了。。。发现编译错误。。。
第二种思路结果跟第一种的一样。。。没有删除行,且出现在了末尾。。。
Python code
应该如何做,才能删除行,且让替代的字符串在原来删除行的位置。。。。
ps,如果需要行号的话,fileinput.filelineno()这个函数可以。。。
我的思路有两种
第一种是读到此行,直接替换
第二种是将此文件写入到另一个文件中,在中途遇到关键字,则替换。
例如 源文件:c:\a.txt,目标,将"world"替换为"python"
第一种的代码是:
Python code
import re import os f=open(r"c:\a.txt", "r+") for line in f.readlines(): if line.find("world") >= 0: s = line.replace("world", "python") f.writelines(s)
在这个代码中,我只实现了将原句替换后写入文件,但是有两重要的功能没实现,就是删除此行,另一个就是每次都是写到最后一行,不能在原来行的位置。。。
我在网上搜了下,说open file的参数有一个是"r+a"表示在当前内容尾部写内容,但是我试了。。。发现编译错误。。。
第二种思路结果跟第一种的一样。。。没有删除行,且出现在了末尾。。。
Python code
import re import os output = [] d_path = r"c:\a1.txt" f=open(r"c:\a.txt") for i in f.readlines(): output.append(i) f.close() for i in output: if i.find("world") >= 0: s = i.replace("world", "python") output.append(s) print output f=open(d_path, "w") f.writelines(output) f.close
应该如何做,才能删除行,且让替代的字符串在原来删除行的位置。。。。
ps,如果需要行号的话,fileinput.filelineno()这个函数可以。。。
作者: jiaoxiaogu 发布时间: 2011-03-10
因为append只能往最后加,不能替换,是否可以在append的数组中做替换呢?
作者: jiaoxiaogu 发布时间: 2011-03-10
相关阅读 更多
热门阅读
-
office 2019专业增强版最新2021版激活秘钥/序列号/激活码推荐 附激活工具
阅读:74
-
如何安装mysql8.0
阅读:31
-
Word快速设置标题样式步骤详解
阅读:28
-
20+道必知必会的Vue面试题(附答案解析)
阅读:37
-
HTML如何制作表单
阅读:22
-
百词斩可以改天数吗?当然可以,4个步骤轻松修改天数!
阅读:31
-
ET文件格式和XLS格式文件之间如何转化?
阅读:24
-
react和vue的区别及优缺点是什么
阅读:121
-
支付宝人脸识别如何关闭?
阅读:21
-
腾讯微云怎么修改照片或视频备份路径?
阅读:28