• python3+Appium自动化11-data数据封装之python读取csv文件


    使用背景

    实际项目中,我们的测试数据可能存储在一个数据文件中,如txt、excel、csv文件类型。我们可以封装一些方法来读取文件中的数据来实现数据驱动

    enumerate()简介

    enumerate()是python的内置函数

    • enumerate在字典上是枚举、列举的意思
    • 对于一个可迭代的(iterable)/可遍历的对象(如列表、字符串),enumerate将其组成一个索引序列,利用它可以同时获得索引和值
    • enumerate多用于在for循环中得到计数

    实例

    对一个列表,既要遍历索引又要遍历元素

    1     list = ["", "", "一个", "测试", "数据"]
    2     for i in range(len(list)):
    3         print(i,list[i])
    4     print("==========")
    5     for index,item in enumerate(list):
    6         print(index,item)

    输出结果

    数据读取方法封装

     1 #coding=utf-8
     2 import csv
     3 
     4 
     5 def get_csv_data(csv_file, line):
     6     '''
     7     获取csv文件指定行的数据
     8     :param csv_file: csv文件路径
     9     :param line: 数据行数
    10     :return:
    11     '''
    12     with open(csv_file, 'r', encoding='utf-8-sig') as file:
    13         reader = csv.reader(file)
    14         for index, row in enumerate(reader, 1):
    15             if index == line:
    16                 return row
    17 if __name__=='__main__':
    18     csv_file = '../data/account.csv'
    19     data = get_csv_data(csv_file, 2)
    20     print(data)

    注:创建csv文件可以使用excel进行创建,保存时另存为.csv文件即可,如果直接将后缀改为.csv有可能读取不到

    utf-8与utf-8-sig两种编码格式的区别

    UTF-8以字节为编码单元,它的字节顺序在所有系统中都是一样的,没有字节序的问题,也因此它实际上并不需要BOM(“ByteOrder Mark”)。但是UTF-8 with BOM即utf-8-sig需要提供BOM。

  • 相关阅读:
    iOS-Core-Animation-Advanced-Techniques(一)
    vue 路由
    Vue 生产环境部署
    vue 单文件组件
    vue 插件
    Vue 混合
    vue 自定义指令
    vue render函数 函数组件化
    vue render函数
    vue 过渡状态
  • 原文地址:https://www.cnblogs.com/shenhainixin/p/9334195.html
Copyright © 2020-2023  润新知