Python学习笔记五(读取提取写入文件)
#Python打开读取一个文件内容,然后写入一个新的文件中,并对某些字段进行提取,写入新的字段的脚本。这是在工作中,需拼装大量的8543报文,原报文只读,不可写入,且也要对原报文进行提取某字段、新增报文头字段,删除某字段等操作,希望大家有用的着的地方,与大家共同学习进步!
import os
import re def get_filelist(dir):
os.getcwd() #get current work direction.
os.chdir(path) #change direction
Filelist = []
for home, dirs, files in os.walk(path):
for filename in files:
#文件名列表,包含完整路径
#Filelist1.append(os.path.join(home, filename))
#文件名列表,只包含文件名
Filelist.append(filename)
return Filelist def main():
n=0
for file in filelist:
os.getcwd() #get current work direction.
os.chdir(path) #change direction
with open(file,mode='r',encoding='utf-8') as f1:
data=f1.read()
f1.close() #切换到新的路径下
os.getcwd() #get current work direction.
os.chdir(newpath) #change directio #读取文件的内容写入到新file文件下
with open(file,mode='w',encoding='utf-8') as f2:
n=n+1
##提取字段 拼装写入##
#系统简称大写
SYST=file[file.find("")+0:file.find("")+4].upper()
#SYST=SYST.upper()
#print(SYST)
#发送行号
SEND1234SEND=""
#接收行号
RECV1234RECV=""
#删除正则匹配的一行
data = re.sub(r'<!--.*-->\n', "", data)
#报文类型
MSGTYPE0MSGTYPE=data[data.find("tech:xsd:")+9:data.find("tech:xsd:")+24]
#MsgID
MSGRID0000MSGRID=data[data.find("<MsgId>")+7:data.find("<MsgId>")+23]
#拼装的报文头
head="{H:02"+SEND1234SEND+" "+SYST+RECV1234RECV+" "+SYST+"00000000000001XML"+MSGTYPE0MSGTYPE+" "+MSGRID0000MSGRID+" "+MSGRID0000MSGRID+" 3D }" f2.write(head+'\n')
f2.write(data)
f2.close() if os.path.isfile(file):
print(file,"转换完成!")
else:
print(file,"转换失败!") print("共转换个文件数:",n) if __name__ == '__main__':
path='E:\\办公文档\\LR项目资料\\XML格式报文示例'
newpath='E:\\Python_test\\读取文件\\newfiles' #path=input("请输入文件路径:")
#newpath=input("请输入转换后新文件路径:") filelist = get_filelist(dir)
#print(filelist)
#不用加引号,如果是多级目录,只判断最后一级目录是否存在
if os.path.isdir(newpath):
#print ('dir exists')
pass
else:
#print ('dir not exists')
os.mkdir(newpath) main()
可参考:shell读取文件写入新文件
Python学习笔记五(读取提取写入文件)的更多相关文章
- python学习笔记:第8天 文件操作
目录 1. 文件操作介绍 2. 文件操作的几种方式 3. 文件的操作的方法 1. 文件操作介绍 说到操作文件我们肯定会想到流,文件的操作都是通过流来操作的.在python中文件的操作非常简单,并不像J ...
- python学习笔记~INI、REG文件读取函数(自动修复)
引入configparser,直接read整个INI文件,再调用get即可.但需要注意的是,如果INI文件本身不太规范,就会报各种错,而这又常常不可避免的.本文自定义函数通过try...except. ...
- python学习笔记(五)-文件操作2
一.文件修改 现有文件file.txt,内容如下:二十四节气歌春雨惊春清谷天,夏满芒夏暑相连.秋处露秋寒霜降,冬雪雪冬小大寒.上半年逢六廿一,下半年逢八廿三.每月两节日期定,最多相差一二天.要求:将文 ...
- python学习笔记之读取配置文件【转自https://my.oschina.net/u/3041656/blog/793467】
[转自https://my.oschina.net/u/3041656/blog/793467] 最近在接触利用python来写测试框架,本人也是个刚接触python,所以是个小菜鸟,今天开始,一点点 ...
- python学习笔记五 模块下(基础篇)
shevle 模块 扩展pickle模块... 1.潜在的陷进 >>> import shelve>>> s = shelve.open("nb" ...
- Java学习笔记——JDBC读取properties属性文件
Java 中的 properties 文件是一种配置文件,主要用于表达配置信息,文件类型为*.properties,格式为文本文件. 文件的内容是格式是"键=值"(key-valu ...
- Python学习笔记_Python向Excel写入数据
实验环境 1.OS:Win 10 64位 2.Python 3.7 3.如果没有安装xlwt库,则安装:pip install xlwt 下面是从网上找到的一段代码,网上这段代码,看首行注释行,是在L ...
- Python学习笔记(三):文件和集合操作
python string与list互转 因为python的read和write方法的操作对象都是string.而操作二进制的时候会把string转换成list进行解析,解析后重新写入文件的时候,还得 ...
- Gin-Go学习笔记五:Gin-Web框架 文件的操作
文件的操作 1> 文件的创建,删除,写入内容,读取内容.(此实例使用的是text文件) 2> Gin 并没有提供文件的创建,删除,读写这个操作的专门的接口,所以采用的是常用 ...
随机推荐
- IDEA中输出syso的快捷键设置
1. 2. 3. 4. 5.上图中的第三步会出现警告,那个红色的字,点击Define,选择Java 6.之后点击Apply和OK即可
- SVN中忘记上传自己写的工程,但是IP已经变了的解决方案
苦于自己没有养成每天下班上传SVN的好习惯,第二天来又发现IP变了,只得把自己写的删掉,记录一下解决方法: 第一个红框中的svn://192.168.0.103/FH是前一天的IP链接地址,结果发现今 ...
- android Action中的data属性
(2) 根据Action和Data匹配 <activity android:name=".MyActivityTwo" android:label="@string ...
- DevOps平台
DevOps定义(来自维基百科): DevOps(Development和Operations的组合词)是一种重视"软件开发人员(Dev)"和"IT运维技术人员(Ops) ...
- scrapy-redis分布式爬取猫眼电影
能够利用redis缓存数据库的优点去重来避免数据的大面积冗余 1.首先就是要创建猫眼爬虫项目 2.进入项目内部创建一个爬虫文件 创建完文件之后就是要爬取的内容,我这边以爬取猫眼电影的title和lin ...
- asp.net core 使用HttpClientFactory Polly实现熔断降级
前言 在++NET Core2.1++后也是增加更新了很多东西,当然HttpClientFactory更新中的一部分.虽然说HttpClient这个实现了disposable,但使用它的时候用usin ...
- charles 黑名单
本文参考:charles 黑名单 charles 黑名单 功能:阻止对匹配HOST的请求:可以直接把请求丢掉,也可以直接返回403状态码: 我一般用黑名单工具来block一些软件的自动上传功能 黑名单 ...
- ssh免密码登陆(集群多台机器之间免密码登陆)
1. 首先在配置hosts文件(每台机器都要) 进入root权限 vi /etc/hosts 添加每台机器的ip + 主机名,例如: 172.18.23.201 hadoop1 172.18.23.1 ...
- .NET Core使用NPOI导出复杂Word详解
前言: 最近使用NPOI做了个导出Word文档的功能,关于使用.NET Core 导出Word文档的方式有很多.最终我为什么选择了NPOI来实现了这个功能,首先是NPOI是一个开源,免费且容易上手的第 ...
- chsime.exe cpu占用高
打开管理员的命令提示符,运行 if exist "%SystemRoot%\System32\InputMethod\CHS\ChsIME.exe" (takeown /f &qu ...