1. 实现目标
在测试与开发中,经常需要对文件进行各种读取操作。这里介绍针对txt、csv、xml、json文件的读取。
2. 读取TXT文件
2.1 user_info.txt文件
:123
user:
error:error
admin:admin123eee?
2.2 读取txt文件.py
#line[:-1]其实就是去除了这行文本的最后一个字符(换行符)后剩下的部分。
#读取文件
with(open("./data_file/user_info.txt","r")) as user_file:
data = user_file.readlines()
#格式化处理
users=[]
for line in data:
user = line[:-1].split(":")
users.append(user)
#打印users二维数组
print(users)
2.3 实现结果
3. 读取csv文件
3.1 user_info.csv
用户名,密码,断言
,123,请输入账号
user,,请输入密码
error,error,账号或密码错误
admin,admin123,admin您好
guest,guest123,guest您好
这里要注意,csv文件本身打开是utf-8的,而不是乱码
3.2 读取csv文件.py
import csv
import codecs
from itertools import islice
# 读取本地csv文件
data = csv.reader(codecs.open("./data_file/user_info.csv", 'r', "utf_8_sig", errors="ignore"))
# 存放用户数据
users = []
# 循环输出每行信息
for line in islice(data, 1, None):
users.append(line)
# 打印
print(users)
这里,针对乱码问题,可以在open方法里添加“,errors="ignore”,忽略乱码错误!
3.3 实现结果
[['', '123', '请输入账号'], ['user', '', '请输入密码'], ['error', 'error', '账号或密码错误'], ['admin', 'admin123', 'admin您好'], ['guest', 'guest123', 'guest您好']]
4. 读取xml文件
4.1 config.xml
<?xml version="1.0" encoding="UTF-8" ?>
<info>
<platforms>
<platform>Windows</platform>
<platform>Linux</platform>
<platform>macOS</platform>
</platforms>
<browsers>
<browser>Firefox</browser>
<browser>Chrome</browser>
<browser>Edge</browser>
</browsers>
<url>http://www.baidu.com</url>
<login username="admin" password="123456"></login>
<login username="guest" password="guest12"></login>
</info>
4.2 读取xml文件.py
from xml.dom.minidom import parse
# 打开XML文件
dom = parse("./data_file/config.xml")
# 得到文档元素对象
root = dom.documentElement
# 获取一组标签
tag_name = root.getElementsByTagName('platform')
print(tag_name[0].tagName)
# 获取属性名
login_tag = root.getElementsByTagName('login')
username = login_tag[0].getAttribute('username')
print(username)
password = login_tag[0].getAttribute('password')
print(password)
#获取标签之间的数据
msg = root.getElementsByTagName("browser")
prs = msg[0].firstChild.data
print(prs)
print(msg[1].firstChild.data)
print(msg[2].firstChild.data)
这里介绍了对标签、标签属性、标签之间数据的读取,可以解决所有xml文件的读取数据问题。
4.3 实现结果
5. 读取JSON文件
5.1 user_info.json
[
{"username": "","password": ""},
{"username": "","password": "123"},
{"username": "user","password": ""},
{"username": "error","password": "error"},
{"username": "admin","password": "admin123"},
{"username": "xushan","password": "shanxu"}
]
5.2 读取json文件.py
import json
with open("./data_file/user_info.json", "r") as f:
data = f.read()
user_list = json.loads(data)
print(user_list)
5.3 实现结果
[{'username': '', 'password': ''}, {'username': '', 'password': '123'}, {'username': 'user', 'password': ''}, {'username': 'error', 'password': 'error'}, {'username': 'admin', 'password': 'admin123'}, {'username': 'xushan', 'password': 'shanxu'}]