Python文件处理之.csv文件处理

2022-06-18 10:48:11

在Python做自动化测试时,经常要处理各种不同类型的数据文件,我们结合Python自动化测试框架实际搭建过程中经常用到的几类保存数据的文件专门做一个专题来进行介绍,今天我们先介绍.csv数据文件的处理。
1、处理的文件数据内容如下
下面代码实例中的123.csv文件内容如下,且文件和当前代码文件在同一个目录下:请添加图片描述
2.、具体处理方案
2-1、读取.csv文件内容

#1.当做普通文件直接读取withopen("123.csv","r",encoding="utf-8")as f:print(f.read())#读取所有
    f.seek(0)#光标移动到最开始位置print(f.readline())#读取一行print(f.readline(15))#读取一行的前N个字符print(f.readlines())#以列表形式读取每一行#2.转换为csv对象读取import csvwithopen("123.csv","r",encoding="utf-8")as f:
    reader= csv.reader(f)for linein reader:#一行一行的读取,每一行都以列表形式存储print(line)#3.转换为字典对象,按键值读取某一列import csvwithopen("123.csv","r",encoding="utf-8")as f:
    reader= csv.DictReader(f)for linein reader:print(dict(line),dict(line)["主观评分"])

2-2、写入数据到.csv文件

#1.写入数据为一个header和一组valuesimport csv

header=['name','age']
value1=['Tom',20]
value2=['张三',15]
value3=[['李四',18],['王五','']]withopen('234.csv','a',newline='',encoding='utf-8-sig')as f:
    writer= csv.writer(f)
    writer.writerow(header)#一次写入一行
    writer.writerow(value1)
    writer.writerow(value2)
    writer.writerows(value3)#一次写入多行#2.写入数据为字典import csv

values=[{'name':'jack','age':'15'},{'name':'tom','age':'16'}]
header=list(values[0].keys())#从字典数据中获取头部信息withopen("456.csv","a+",newline='',encoding="utf-8-sig")as f:
    writer= csv.DictWriter(f,header)#传2个参数,第一个参数为打开的.csv文件句柄,第二个参数为要写的表头
    writer.writeheader()#写入表头的专用方法,这里也可以使用writer.writerow(header)
    writer.writerows(values)

小结:
.csv文件经常用例来保存测试用例数据,在整个自动化框架体系中起到测试用例数据与测试用例代码的分离,在自动化测试框架中经常要使用,一般我们会专门定义好要读取或写入数据的数据接口,单独封装为整个框架的工具类中一个处理csv文件的方法。

  • 作者:篮不住的十三。
  • 原文链接:https://blog.csdn.net/weixin_48681975/article/details/119887922
    更新时间:2022-06-18 10:48:11