自动化测试经常使用csv文件进行数据驱动测试,读写方法总结如一下
第1步: 学会读取CSV文件
CSV文件.jpg
代码参考.jpg
'''
Created on 2018年3月1日
@author: Yvon_早安阳光
'''
import csv
# 读取csv文件方式1
csvfile = open('shuju.csv','r')
reader = csv.reader(csvfile)#返回的是迭代类型
data =[] #中括号[]代表list列表数据类型,列表是一种可变的序列
for item in reader:
print(item)
data.append(item)
print(data)
csvfile.close()
print('-------------------------------------------------------------------------------------------------------')
#读取csv文件方式2
with open ('shuju.csv','r') as csvfile:
reader1 = csv.reader(csvfile)#返回的是迭代类型
for item1 in reader1:
print(item1) #打印所有的数据
colum = [item1[2]] #获取第3列
print(colum)
csvfile.close()
print('-------------------------------------------------------------------------------------------------------')
#读取csv文件方式3
'''
使用DictReader,和reader函数类似,接收一个可迭代的对象,能返回一个生成器,
但是返回的每一个单元格都放在一个字典的值内,而这个字典的键则是这个单元格的标题(即列头)
'''
with open('shuju.csv','r') as csvfile2:
reader2 = csv.DictReader(csvfile2)
colum = [row for row in reader2]
colum1 = [row['语言'] for row in colum]
print(colum)
print(colum1)
读取csv文件方式3.jpg
第2步:学会写入CSV文件
写入方法1.jpg
写入方法2和3.jpg
'''
Created on 2018年3月2日
@author: fajin
'''
import pandas as pd
#写入csv文件方式1--使用Pandas模块
name = ["序号","语言","测试工具"]
list = [['1','VB','QTP'],['2','Python','Appium手机'],['3','日本Ruby','Selenium']]
# test = pd.DataFram(columns = name,data = list)
test = pd.DataFrame(columns = name,data = list)
test.to_csv('shuju1.csv',index=False,sep=',',encoding="gb2312")#避免中文乱码
print('--------------------------------------------------------')
import csv
#写入csv文件方式2---从列表写入csv文件
#读取csv文件,写入新的csv文件
csvfile = open('shuju.csv','r')
reader = csv.reader(csvfile)#返回的是迭代类型
data =[] #中括号[]代表list列表数据类型,列表是一种可变的序列
for item in reader:
data.append(item)
print(data)
csvfile.close()
csvFile2 = open('shuju2.csv','w', newline='') # 设置newline,否则两行之间会空一行
writer = csv.writer(csvFile2)
m = len(data)
for i in range(m):
writer.writerow(data[i])
csvFile2.