标题: [已解决]35求助 读取XML文件指定信息 [打印本页]
作者: qianshang 时间: 2020-11-30 23:07 标题: [已解决]35求助 读取XML文件指定信息
解析每个ID的信息 <ID></ID> 其中的UserType, UserVendorId, UserSubType, Flags以及注释信息 保存成txt 用python写最好
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
作者: zaqmlp 时间: 2020-11-30 23:48
- # encoding: utf-8
- # Python 3.6.0
-
- import os
- import codecs
- import re
-
- path='.'
- arr=os.listdir(path)
- for it in arr:
- file=os.path.join(path, it)
- if os.path.isfile(file) and (it[-4:].lower()=='.xml'):
- print(file)
- f=codecs.open(file,'r','utf-8')
- text=f.read()
- f.close()
- txtfile=file+'.txt'
- f=codecs.open(txtfile,'w','gb2312')
- m=re.findall(r'<ID\d*>[\s\S]+?<\/ID\d*>',text)
- for it in m:
- brr=['','','','','']
- a=re.search(r'[^>]+(?=<\/UserType>)',it)
- if a:
- brr[0]=a.group(0)
- b=re.search(r'[^>]+(?=<\/UserVendorId>)',it)
- if b:
- brr[1]=b.group(0)
- c=re.search(r'[^>]+(?=<\/UserSubType>)',it)
- if c:
- brr[2]=c.group(0)
- d=re.search(r'[^>]+(?=<\/Flags>)',it)
- if d:
- brr[3]=d.group(0)
- e=re.search(r'(?<=<!--)[^>]+(?=-->)',it)
- if e:
- brr[4]=e.group(0)
- line='\t'.join(brr)
- f.write(line+'\r\n')
- f.close()
复制代码
作者: qianshang 时间: 2020-12-1 00:01
感谢大佬 还有个问题就是这里面<ID1>....<ID5> 跟后面<ID>...</ID>数据其实是重复的 这个可以只取一次么
作者: zaqmlp 时间: 2020-12-1 00:28
回复 3# qianshang
19行,自行选择修改
有数字- m=re.findall(r'<ID\d+>[\s\S]+?<\/ID\d+>',text)
复制代码
无数字- m=re.findall(r'<ID>[\s\S]+?<\/ID>',text)
复制代码
作者: qianshang 时间: 2020-12-1 00:52
OK 已转账
欢迎光临 批处理之家 (http://www.bathome.net/) |
Powered by Discuz! 7.2 |