Python minidom读取xml/csv文件数据简单操作

XML与CSV数据读取技巧
本文详细介绍了如何使用Python读取XML和CSV文件,包括处理XML文件中的元素及属性,以及解决CSV文件中常见的编码错误。通过示例代码展示了从文件中提取所需数据的方法。

目录

一、xml数据的读取

1.1简单Demo

1.2创建demo.xml文件

1.3导入 from xml.dom import minidom来读取文件

1.4运行结果:

 

二、csv文件数据读取

2.1可能会报异常,因为文件中有中文编码也不是utf-8python 报报错"UnicodeDecodeError: 'utf-8' codec can't decode       byte"的解决办法 

2.1.1把csv后缀文件改为txt后缀文件

2.1.2双击打开修改过后缀的txt文件,点击文件------另保存为 

2.1.3选择适合文件的编码格式,并保存替换原来的文件

2.1.4把修改好的文件修改为csv后缀名,再运行项目 


一、xml数据的读取


from xml.dom import minidom
class Readxml():
    def read_xml(self,filename,onename,twoname):
        root =minidom.parse(filename)
        firstnode =root.getElementsByTagName(onename)[0]
        secondnode=firstnode.getElementsByTagName(twoname)[0].firstChild.data
        return secondnode


获取xml文件中的数据

1.1简单Demo

1.2创建demo.xml文件

<?xml version="1.0" encoding="utf-8" ?>
<note>
    <AAA>
        <BBB>66</BBB>
        <BBB>77</BBB>
        <BBB>88</BBB>
    </AAA>
    <AAA>
        <BBB>99</BBB>
        <BBB>88</BBB>
        <BBB>66</BBB>
    </AAA>
</note>

1.3导入 from xml.dom import minidom来读取文件

from xml.dom import minidom


class ReadXmlClass:
    def read(self):
        # 打开文件
        root = minidom.parse("../XmlDemo/Demo")
        firstnode = root.getElementsByTagName("AAA")[1]
        secondnode = firstnode.getElementsByTagName("BBB")[2].firstChild.data
        print(secondnode)


a = ReadXmlClass()
a.read()

1.4运行结果:

AAA[1]下的 BBB[2]的值:66

 

二、csv文件数据读取

import csv  # 导入csv模块


class ReadCsvClass():
    def read_csv(self):
        item = []  # 定义一个空列表
        c = csv.reader(open("../test1.csv", "r",encoding='utf-8'))  # 得到csv文件对象
        for csv_i in c:
            item.append(csv_i)  # 将获取的数据添加到列表中
        return item


r = ReadCsvClass()
print(r.read_csv())

运行结果:

2.1可能会报异常,因为文件中有中文编码也不是utf-8python 报报错"UnicodeDecodeError: 'utf-8' codec can't decode byte"的解决办法 

2.1.1把csv后缀文件改为txt后缀文件

2.1.2双击打开修改过后缀的txt文件,点击文件------另保存为 

2.1.3选择适合文件的编码格式,并保存替换原来的文件

2.1.4把修改好的文件修改为csv后缀名,再运行项目 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值