一、文件打开模式
- r ,只读模式【默认模式,文件必须存在,不存在则抛出异常】
- w,只写模式【不可读;不存在则创建;存在则清空内容】
- x, 只写模式【不可读;不存在则创建,存在则报错】
- a, 追加模式【可读; 不存在则创建;存在则只追加内容】,文件指针自动移到文件尾。
"+"表示可以同时读写某个文件
- r +, 读写【可读,可写】
- w +,写读【可读,可写】,消除文件内容,然后以读写方式打开文件。
- x + ,写读【可读,可写】
- a +, 写读【可读,可写】,以读写方式打开文件,并把文件指针移到文件尾。
"b"表示以字节的方式操作,以二进制模式打开文件,而不是以文本模式。
- rb或r+b
- wb或w+b
- xb或w+b
- ab或a+b
注: 以b方式打开时,读取到的内容是字节类型,写入时也需要提供字节类型,不能指定编码
二、读取txt文件
with open(text_path,'a+') as my_file:
#values2 = my_file.readlines()
#values2 = my_file.read()
values2 = my_file.readline()
read() 读取整个文件。返回str
readline() 读取一行数据。返回str
readlines() 读取所有行的数据。返回list
三、读取csv文件
import csv
with open('test_data/user_info.csv','r+') as my_file:
data = csv.reader(my_file)
print(type(data)) #返回对象
for row in data:
print(row) #返回list
四、读取excel文件
读取Excel文件需要安装xlrd库,在cmd界面输入命令:pip install xlrd
import xlrd
# 打开Excel文件读取数据
workbook = xlrd.open_workbook('a.xlsx')
# 打印所有的sheet列出所有的sheet名字
print(workbook.sheet_names())
# 根据sheet索引或者名称获取sheet内容
Data_sheet = workbook.sheets()[0]
# Data_sheet = workbook.sheet_by_index(1)
# Data_sheet = workbook.sheet_by_name(u'Charts')
# 获取sheet名称、行数和列数
print(Data_sheet.name,Data_sheet.nrows,Data_sheet.ncols)
# 获取整行和整列的值(列表)
rows = Data_sheet.row_values(0) #获取第一行内容
cols = Data_sheet.col_values(1) #获取第二列内容
print(rows)
print(cols)
# 获取单元格内容的数据类型
# 相当于在一个二维矩阵中取值
# (row,col)-->(行,列)
cell_A1 = Data_sheet.cell(0,0).value# 第一行第一列坐标A1的单元格数据
# cell_C1 = Data_sheet.cell(0,2).value # 第一行第三列坐标C1的单元格数据
# 检查单元格的数据类型
# ctype的取值含义
# ctype : 0 empty,1 string, 2 number, 3 date, 4 boolean, 5 error
print(Data_sheet.cell(4,0).ctype)
#栗子
def Get_Excel(file_path):
all_case = []
workbook = xlrd.open_workbook(file_path)
sheet_data = workbook.sheet_by_index(1)
#获取总行数
row_sum = sheet_data.nrows
#起始为1,所以不包括表头
for i in range(1,row_sum):
is_activity = sheet_data.cell(i,9).value
#过滤不运行的测试数据
if int(is_activity) == 1:
all_case.append({
"case_name":sheet_data.cell(i,4).value,
"data":sheet_data.cell(i,5).value,
"url":sheet_data.cell(i,6).value,
"method":sheet_data.cell(i,7).value,
"code":sheet_data.cell(i,8).value
})
return all_case
五、读取yaml文件
Python读取yaml文件需要安装第三方库pyyaml,cmd界面输入命令:pip install pyyaml
config.yaml文件内容如下:
url : https://www.baidu.com
email : ['123456@qq.com','admin@qq.com']
DB :
host: localhost
name : test
user : admin
password : admin
读取yaml文件
import yaml
with open("config/config.yaml","r+",encoding='utf-8') as my_yaml:
yaml_data = yaml.load(my_yaml)
print(yaml_data)
print(type(yaml_data)) #返回字典
print(type(yaml_data['url']))
print(type(yaml_data['email']))
print(type(yaml_data['DB']))
输出如下
{'url': 'https://www.baidu.com', 'email': ['123456@qq.com', 'admin@qq.com'],
'DB': {'host': 'localhost', 'name': 'test', 'user': 'admin', 'password': 'admin'}}
<class 'dict'>
<class 'str'>
<class 'list'>
<class 'dict'>
网友评论