用pandas进行csv文件的读取和写入

应用场景:

在自动化测试中,对于大量测试数据的驱动以及测试结果的存储;

csv特点:csv文件具有格式简单,快速存取,兼容性好等特点;类似一个文本文档,每一行保存一条数据,同一行中的各个数据通常采用逗号(或tab)分隔。python自带了csv模块,专门用于处理csv文件的读取和存档。

以一个简单的student表为例:

用pandas进行csv文件的读取和写入_第1张图片

在测试的过程中可能要考虑到参数化,所以需要读取某一列的数据,将其依次传到接口中;

import pandas as pd # 导入pandas模块,简写为pd
data_info = pd.read_csv("student.csv")  # 读取student表内容,返回的是数组的形式;
for i, data in data_info.iterrows():
     name = data["name"]  # 取到name这一列的数据
     age = data["age"]  # 取到age 这一列的数据
     subject = data["subject"]
     

 那么如何将数据写入csv呢?

import pandas as pd
data1 = ["小明", 20] # 以list 存储每一行的数据
data2 = ["小雨", 21]
data3 = ["小花", 22]
header = ["姓名", "年龄"]
df = pd.DataFrame([data1, data2, data3], columns=header) # 组成一个csv
df.to_csv("./data.csv", index=False)

结果如下:

用pandas进行csv文件的读取和写入_第2张图片

 最后可以封装一下pandas读写csv的方法,这样在工作中使用起来会比较方便;

def read_csv_data(file_path):
    # 读取csv数据,输入文件的路径,返回的是{[]}结构的数据
    df = pd.read_csv(file_path)
    data_list = [{k: v for k, v in row.items() if 'Unnamed:' not in k} for index, row in df.iterrows()]
    return data_list


def write_csv_data(data, file_path):
    # 存储csv,输入{[]}结构数据,文件路径
    df = pd.DataFrame(data)
    # print(df)
    df.to_csv(file_path, index=False)

你可能感兴趣的:(Python基础,python)