【python&提取xml文件中有用的数据信息,实现xml转csv文件或转txt文件】
提取xml文件信息中有用的数据,写入一个excel表格功能描述代码实现功能描述对原始数据为多个xml文件格式的文本,需要对其中的多个相同格式的文本信息进行提取,转化为方便处理的txt文件,或者csv文件,得到每一列为相同的数据信息,之后进行数据操作、信息挖掘等等处理前的原始数据格式,如下图,注意:如果没有这一层,需要手动添加进去① 处理后的文件格式:(csv文件)② 处理后的文件格式:(txt文件
·
功能描述
对原始数据为多个xml文件格式的文本,需要对其中的多个相同格式的文本信息进行提取,转化为方便处理的txt文件,或者csv文件,得到每一列为相同的数据信息,之后进行数据操作、信息挖掘等等
处理前的原始数据格式,如下图,注意:如果没有 root 根元素 这一层,需要手动添加进去
① 处理后的文件格式:(csv文件)
② 处理后的文件格式:(txt文件)
代码实现
① 代码
#!/usr/bin/env python
# -*- coding: utf-8 -*-
# @Time : 2021/05/26
# @Author : Kenn_Wu
# Purpose: 提取xml文件信息中有用的数据,转存为csv文件
import os
import glob
import pandas as pd
import xml.etree.ElementTree as ET
def xml_to_csv(path):
xml_list = []
for xml_file in glob.glob(path + '*.xml'):
print(xml_file)
tree = ET.parse(xml_file)
root = tree.getroot() # 到根元素层
for member in root.findall('RECORD'):
value = (member[5].text,
# member[4].text,
member[6].text,
member[2].text,
member[7].text,
member[1].text
)
xml_list.append(value)
# print(value)
column_name = ['person_id', 'time','discuss', 'transmit', 'article']
xml_df = pd.DataFrame(xml_list, columns=column_name)
return xml_df
if __name__ == '__main__':
xml_path = ('./')
xml_df = xml_to_csv(xml_path)
xml_df.to_csv('data.csv', index=None)
print('Successfully converted xml to csv about data')
② 代码
#!/usr/bin/env python
# -*- coding: utf-8 -*-
# @Time : 2021/05/26
# @Author : Kenn_Wu
# Purpose: 从 xml文件中提取需要的数据,存为txt文本
# You need to run this code under the txt folder
import os
import sys
import xml.etree.ElementTree as ET
import glob
def xml_to_txt(indir, outdir):
Data = os.listdir(indir)
file_save=outdir
for i, file in enumerate(Data):
f_w = open(file_save, 'a')
open_file=indir+file
print(open_file)
in_file = open(open_file,'r',encoding='UTF-8')
tree = ET.parse(in_file)
root = tree.getroot()
for obj in root.iter('RECORD'):
id = obj.find('id').text
discuss=str(obj.find('discuss').text)
origin=str(obj.find('origin').text)
person_id=str(obj.find('person_id').text)
time=str(obj.find('time').text)
transmit=str(obj.find('transmit').text)
article=str(obj.find('article').text)
f_w.write(person_id + '\t' + time + '\t' + transmit + '\t' + discuss + '\t'+article+ '\n')
# f_w.write(article+ '\n')
indir = './Data_xml/' # xml目录
outdir = './data1.txt' # txt目录
xml_to_txt(indir, outdir)
print('Successfully converted xml_file to txt_file')
更多推荐
已为社区贡献4条内容
所有评论(0)