python处理多行文件内容
来源:互联网 发布:财务金融知乎 编辑:程序博客网 时间:2024/05/01 02:11
工作中需要切换程序运行环境,于是要改配置文件内容,便想到了用脚本实现,便于切换。刚开始用vbs写的,废了老大劲还没做出来,同事说python更好用点,一直也想学习下python,正好这是一次机会。
整个脚本需要做的事是在文件中查到需要改的语句后替换为另一语句,还需通过关键字找到一行,把接下来的几行都注释掉。下面为我实现的python脚本。
例如文件名为example.txt,放在D盘下。文件内容如下:
girl
boy
key words
12
start notes
1abc
2abc
end notes
kdjska
通过脚本运行后希望example.txt内容变成
girl
boy
<!—key words-->
12
<!—start notes-->
<!—1abc-->
<!—2abc-->
<!-end notes-->
kdjska
在example.txt文件中start notes为第二个一个关键字,找到后注释并注释后面的3行。
python代码如下:
import os#os 模块提供了一个统一的操作系统接口函数,这些函数通常是平台指定的,os#模块能在不同操作系统平台中的特定函数间自动切换,从而实现跨平台操作f=open(r"D:\example.txt","r+")#字符串前面的r说明在字符串中的“\”不是转义字符,代表斜杠本身,r+以读#写模式打开文件d = f.read()#把文件内容按原样全部读到字符串d中if d.find("key words")>=0:#找到关键字d = d.replace("key words", "<!—key words-->")f.truncate(0)#把文件内容清空f.seek(0)#文件指针指向文件头f.write(d)f.close()n1=4m=0memoryFile = [] #get these file contentfp=open(r"D:\example.txt","r+")for line in fp.readlines(): #line break by default if(line.find("start notes")>=0 or n1!=4): #find line = line.lstrip("\t ")#去除每行行首空格 line = "<!--" + line[:-1] + "-->\n"#去除每行回车键加“-->”,再还原回车键 memoryFile.append(line) m=m+1 if m!=4: n2=0 else: n2=4 continue memoryFile.append(line)fp.close()os.remove(r"D:\example.txt")newfiles=open(r" D:\example.txt ",'w')for line in memoryFile: newfiles.write(line)newfiles.close()
请注意,在python中注释尽量用英文,如果非得用中文请在首行声明编码#codeing=utf-8。如果有比较复杂的关键字,可以用python的正则表达式很简单。还有当我们需要替换文件夹下所有目录中文件关键字时用python也很方便。
0 0
- python处理多行文件内容
- 字符流读取多行文件内容进行校验
- python读取多行文件的三种方法
- 多行文件变一行
- 将多行文件转换为一行
- sed 将多行文件变为一行
- c++循环读取多行文本文件
- js多行文本的处理方法
- 单行/多行文本溢出处理
- 使用cat命令和EOF标识输出多行文件
- 使用cat命令和EOF标识输出多行文件
- linux shell 将多行文件转换为一行
- 使用cat命令和EOF标识输出多行文件
- linux shell 将多行文件转换为一行
- linux shell 将多行文件转换为一行
- JDK8 BufferedReader可以读多行文件 BufferedReader.lines
- linux shell 将多行文件转换为一行
- 目录中文件内容处理小工具
- 用js模拟struts2的多action调用
- 截获或替换linux系统调用
- centos配置静态或动态的IP地址呢?
- 结构的简单实用
- 机器码作为shellcode运行时段错误
- python处理多行文件内容
- Context-----Activity,Application之间的交流使者
- 找错误
- 开源的IM框架--担心
- html学习笔记四
- nginx源码分析--module开发(4)
- 深入浅出web服务
- 高校云平台从需求分析说起
- poj 2601 Simple calculations