python追加写入数据到excel表格

   

目录

一、脚本结构

二、使用的模块

三、脚本实现

        1、实时信息的获取

        2、数据的记录


     最近几周的测试工作中,有一项内容是需要不断地从界面上获取信息,所以我研究了一下 “ 利用接口先将信息获取下来,然后将信息输出到表格里 ” 的方法。

一、脚本结构

        脚本的结构非常简单,一个config.yaml文件存放接口信息,一个writeInfo.py文件负责界面的登陆,实时信息的获取和数据的记录。

二、使用的模块

        获取信息:requests

        配置文件:yaml

        读取表格:xlrd

        写入表格:xlwt

        追加写入表格:xlutils

三、脚本实现

        1、实时信息的获取

      实时信息获取利用requests库就可以完成。主要是需要知道这些操作使用的接口url、请求的方法、需要的参数等等。

import yaml
import requests

def getInfo(login_cookie):
    """获取信息"""
    # 首先打开yaml文件,因为接口信息我都存到了里面
    file = open('config.yaml', encoding='utf-8')
    res = yaml.load(file, Loader=yaml.FullLoader)
    
    # 从yaml文件中获取接口信息
    url = res['getInfo_url']
    header = res['getInfo_headers']
    cookie = login_cookie()
    info = {
        "count": 15,
        "page": 1,
        "index": 0
    }
    
    # 发送get请求,获取需要的信息
    response = requests.get(url, params=info, headers=header, verify=False, cookies=cookie).json()
    
    jobName = response['responseData']['data']['jobName'])
    speed = response['responseData']['data']['speed'])
    status = response['responseData']['data']['Status']

    return jobName, status, speed

        2、数据的记录

        数据记录部分我是利用python xlrd xlwt xlutils模块,将获取到的数据存入excel表格中的。好处是易读,再加上用excel进行求和、求平均值也非常方便。

import xlrd
import xlwt
from xlutils.copy import copy
from time import sleep

def writeInfo(login_cookie, getInfo):
    """数据记录"""
    # 首先创建一个新的表格
    workbook = xlwt.Workbook()
    sheet = workbook.add_sheet("数据记录")
    workbook.save("record.xls")
    
    jobName, status, speed = getInfo(login_cookie)
    
    # 追加写入数据
    while status == 4:
        jobName, status, speed = getInfo(login_cookie)
        
        # 读取原表格
        workbook = xlrd.open_workbook("record.xls")
        # 获取原表格第一个sheet的名字(我这里只有1个sheet)
        all_sheet = workbook.sheet_names()
        first_sheet = workbook.sheet_by_name(all_sheet[0])
        # 获取原表格第一个sheet一写入数据的行数
        rows = first_sheet.nrows  
        
        # 拷贝新的excel,并从rows行开始追加写入
        new_workbook = copy(workbook)
        new_sheet = new_workbook.get_sheet(0)
        
        new_sheet.write(rows, 0, jobName)
        new_sheet.write(rows, 1, status)
        new_sheet.write(rows, 2, speed)

        new_workbook.save("record.xls")
        # 每5秒循环一次
        sleep(5)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值