python读取txt、csv以及xml文件
1、读取txt文件
txt文件是经常需要被操作的文件类型,python提供了以下几种常见的读取txt文件的方式:
\* read(): 读取整个文件
\* readline(): 读取一行数据
\* readlines(): 读取所有行的数据
假设user\_info.txt文件内内容如下:
user\_info.txt
zhangsan,123
lisi,456
wangwu,789
首先需要将用户名和密码按行写入txt文件中,这里把用户名和密码用逗号“,”隔开。
读取txt文件代码如下:
txt\_read.py
#-*-coding:utf-8-*-
# 读取txt文件
user_file = open('user_info.txt','r')
lines = user_file.readlines()
for line in lines:
username = line.split(',')[0]
password = line.split(',')[1]
print(username,password)
2、读取csv文件
假设现在每次要读取的是一组用户数据,这一组数据包括用户名、邮箱、年龄、性别等信息,这时再使用txt文件存放数据,读取起来就没那么方便了。对于这种类型的数据可以通过CSV文件来存放。
创建info.csv文件,首先通过WPS表格或Excel创建表格,文件另存为CSV文件进行保存。**注意不要直接修改文件的后缀名来创建CSV文件**,这样创建的并非真正的csv类型的文件,如下图所示。
info.csv
![Image 1][]
程序如下:
csv.py
#-*-coding:utf-8-*-
# 读取csv 文件
###########################################
import csv # 导入csv 包
# 读取本地 CSV 文件
date = csv.reader(open('csv_read.csv','r'))
# 循环输出每一行信息
for user in date:
print(user) # 取某行数据,print(user[0])
3、读取xml文件
有时候我们需要读取的文件不是规则的。例如,我们需要一个配置文件来配置当前自动化测试脚本的URL、浏览器、登录的用户名和密码等,这时候就可以考虑选择使用XML文件来存储这些信息。
xml文件info.xml,可以通过新建txt改后缀为xml创建xml文件,假设info.xml文件内容为:
![SouthEast 1][]
代码如下:
xml\_read.py
#-*-coding:utf-8-*-
from xml.dom import minidom # 导入xml的minidom模块,用来处理XML文件
# 打开xml文档
dom = minidom.parse('info.xml') # parse用于打开一个XML文件
# 得到文档元素对象
root = dom.documentElement # documentElement用于得到XML文件的唯一根元素
# print(root.nodeName) # nodeName为节点名称
# print(root.nodeValue) # nodeValue为节点的值
# print(root.nodeType) # 节点的类型
# print(root.ELEMENT_NODE)
# 获得任意标签名
################################################################################
# tagname = root.getElementsByTagName('browser') # getElementsByTagName()可以通过标签名获取标签,以数组形式存放
# print(tagname[0].tagName)
# tagname = root.getElementsByTagName('province')
# print(tagname[2].tagName)
# tagname = root.getElementsByTagName('city')
# print(tagname[2].tagName)
logins = root.getElementsByTagName('login')
#################################################################################
# 获得标签对应的属性值,如获取login标签的username以及password属性
#################################################################################
# 获得第一个login标签的username属性值
username = logins[0].getAttribute("username")
print(username)
# 获得第一个login标签的password属性值
password = logins[0].getAttribute("password")
print(password)
# 获得第二个login标签的username属性值
username = logins[1].getAttribute("username")
print(username)
# 获得第二个login标签的password属性值
password = logins[1].getAttribute("password")
print(password)
#################################################################################
# 获得标签对之间的数据
#################################################################################
provinces = dom.getElementsByTagName('province')
citys = dom.getElementsByTagName('city')
# 获取第二个province标签对的值
province2 = provinces[1].firstChild.data #firstChild属性返回被选节点的第一个子节点,data表示获取该节点的数据
print(province2)
# 获取第一个city标签对的值
city1 = citys[0].firstChild.data
print(city1)
# 获取第二个city标签对的值
city2 = citys[1].firstChild.data
print(city2)
#################################################################################
[Image 1]:
还没有评论,来说两句吧...