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 并没有提供文件的创建,删除,读写这个操作的专门的接口,所以采用的是常用 ...
随机推荐
- Java中存储金额用什么数据类型
Java面试高频问题:你会用什么数据类型来存储金额? 如果这个时候你回答float,double那么恭喜你,又可以省出时间来准备别的公司的面试了,当面试官说float,和double不行的时候你可能还 ...
- 2019沈阳网络赛B.Dudu's maze
https://www.cnblogs.com/31415926535x/p/11520088.html 啊,,不在状态啊,,自闭一下午,,都错题,,然后背锅,,,明明这个简单的题,,, 这题题面不容 ...
- cmd命令查看已连接的WiFi密码
实验环境:Windows 10.命令提示符(管理员权限) 一.CMD命令查看WiFi密码 使用方法: ①.运行CMD(命令提示符) (确保无线网卡启用状态)②.输入命令查看WiFi配置文件: # ...
- 从MySQL到Hive,数据迁移就这么简单
使用Sqoop能够极大简化MySQL数据迁移至Hive之流程,并降低Hadoop处理分析任务时的难度. 先决条件:安装并运行有Sqoop与Hive的Hadoop环境.为了加快处理速度,我们还将使用Cl ...
- Hibernate 之 @Query查询
注解 @Query 允许在方法上使用 JPQL. 列如: @Query("select u from User u where u.name=?1 and u.department_id= ...
- Find a way(两个BFS)
Problem Description Pass a year learning in Hangzhou, yifenfei arrival hometown Ningbo at finally. L ...
- java必学技能
一:系统架构师是一个最终确认和评估系统需求,给出开发规范,搭建系统实现的核心构架,并澄清技术细节.扫清主要难点的技术人员.主要着眼于系统的“技术实现”.因此他/她应该是特定的开发平台.语言.工具的大师 ...
- .NetCore 网站DELETE请求错误405.0 - Method Not Allowed 因为使用了无效方法
.netCore网站Delete请求405错误 解决方案 1:在启用或关闭Windows功能 –> Internet Information Services 关闭WebDAV发布(这种方式可能 ...
- 容器时代的持续交付工具---Drone:Drone介绍与安装
Drone:Drone is a Container-Native, Continuous Delivery Platform. 官方给的定义,从上面的定义可以得出两个关键点: 1,Container ...
- Spring常犯的十大错误,你踩过吗?
1.错误一:太过关注底层 我们正在解决这个常见错误,是因为 "非我所创" 综合症在软件开发领域很是常见.症状包括经常重写一些常见的代码,很多开发人员都有这种症状. 虽然理解特定库的 ...