您的位置:

python实现日报自动化的简单介绍

本文目录一览:

Python操作Excel实现自动化报表

Python操作Excel实现自动化报表

安装

python -m pip install xlrd xlwt xlutils。

基本用法

1.从指定文件路径读取excel表格,进行一定操作,然后保存到另一个excel文件:result.xlsx

import xlwt

import xlrd

from xlutils.copy import copy

import pandas as pd

from pandas import DataFrame,Series

import os

os.chdir('./')

# 从指定文件路径读取excel表格

df = pd.read_excel('D:/mypaper/data/data.xlsx')

# 查看df内容

# 根据age算出出生年份,增加一列

import datetime

import os

year = datetime.datetime.now().year#获取当前系统时间对应的年份

df['birth'] = year-df['age']

df.to_excel('result.xlsx')#保存到当前工作目录,可以用os.getcwd()查看

#查看下此时df的内容,可以看到已经生成了birth这一列。

2.单元格操作

# 定义方法:读取指定目录下Excel文件某个sheet单元格的值

def excel_read(file_path,table,x,y):

     data = xlrd.open_workbook(file_path)

     table = data.sheet_by_name(table)

     return table.cell(y,x).value

# 定义方法:单元格值及样式

write_obj_list = []

def concat_obj(cols,rows,value):

    write_obj_list.append({'cols':cols,'rows':rows,'value':value,\

'style':xlwt.easyxf('font: name 宋体,height 280;alignment: horiz centre')})

# 定义方法:合并单元格

def merge_unit(srows,erows,scols,ecols,value):

    write_obj_list.append({'id':'merge','srows':srows,'erows':erows,'scols':scols,\

'ecols':ecols,'value':value,'style':xlwt.easyxf('font: name 宋体,height 280;alignment: horiz centre')})

# 定义方法:更新excel

excel_update(file_path,write_obj_list,new_path):

    old_excel = xlrd.open_workbook(file_path, formatting_info=True)

    #管道作用

    new_excel = copy(old_excel)

    '''

    通过get_sheet()获取的sheet有write()方法

    '''

    sheet1 = new_excel.get_sheet(0)

    '''

    1代表是修改第几个工作表里,从0开始算是第一个。此处修改第一个工作表

    '''

    for item in write_obj_list:

        if 'id' not in item.keys():

            if 'style' in item.keys():

                sheet1.write(item['rows'], item['cols'], item['value'],item['style'])

            else:

                sheet1.write(item['rows'], item['cols'], item['value'])

        else:

            if 'style' in item.keys():

                sheet1.write_merge(item['srows'],item['erows'],item['scols'], item['ecols'], item['value'],item['style'])

            else:

                sheet1.write_merge(item['srows'],item['erows'],item['scols'], item['ecols'], item['value'])

    '''

   如果报错 dict_items has no attributes sort

    把syle源码中--alist.sort() 修改为---- sorted(alist) 

    一共修改2次

    '''

    new_excel.save(file_path)

#参数详解

# srows:合并的起始行数

# erows:合并的结束行数

# scols:合并的起始列数

# ecols:合并的结束列数 

# value:合并单元格后的填充值

# style:合并后填充风格:

#     font: name 宋体

#     height 280;

#     alignment: horiz centre

#     ... 与excel操作基本保持一致

(注意:该方法仅仅是将需要直行的动作保存到一个list中,真正的动作还未执行,执行动作是发生在excel_update方法中)

最终调用excel_update方法,传入每个单元格需要进行的操作和填充值的write_obj_list以及文件保存路径file_path,就可以在当前工作目录下生成想要的Excel结果文件。

注意:

1.write_obj_list支持用户自定义

2.write_obj_list也可以是根据excel_read方法读取现有待修改的excel文件(可以维持原有表格的格式)而生成

End

python能做自动化吗

当然可以,Python除了可以做自动化开发、自动化运维、自动化测试之外,还可以从事人工智能、爬虫等工作。

如何用python做自动化测试

用python做自动化测试,主要是接口测试和UI自动化测试。

一、接口测试:

http协议的举例:

可以用python自带的urllib\urllib2模拟,模拟前端向服务器发送数据,获取返回值后,进行校验和判断来进行接口测试。

网上的例子也比较多,这里简单说一下,

比如request中data的边界值测试、字符测试、非空为空测试等等,都可以做

二、UI自动化测试:

html页面(python+selenium)或者一些安卓app(python+appiun)可以用。

主要是页面元素的检查、输入等。

比如可以写一个脚本,自动登录百度页面,搜索某一个关键字,并且获得此关键字的百度搜索数量。

python自动化工具:pywinauto

Pywinauto是完全由Python构建的一个模块,可以用于自动化 Windows 上的 GUI 应用程序。同时,它支持鼠标、键盘操作,在元素控件树较复杂的界面,可以辅助我们完成自动化操作。

我在工作中,主要是使用pywinauto来辅助做一些操作,来完成自动化测试。

先要确认本地有python环境,然后可以通过命令行安装pywinauto:

如果你是使用ide,可以通过ide安装,比如我习惯使用pycharm,就可以在Project Interpreter中添加pywinauto:

还有一些手动安装的方法,但是有点繁琐,不是很推荐,这里就不介绍了。

Pywinauto要操作应用,首先需要访问应用,主要有两种访问技术。WIN32访问技术支持MFC、VB6、VCL、简单WinForms控件开发的应用,MS UI Automation访问技术支持WinForms、WPS、QT5、WPF、Store apps、browsers等开发的应用。

win32 API的backend为「 win32 」,MS UI Automation的backend为「 uia 」。

Pywinauto中使用的backend默认为win32。可使用spy++或者Inspect工具判断backend适合选哪种。例如:如果使用py_inspect的uia模式,可见的控件和属性更多的话,backend可选uia,反之,backend可选win32。

这里提一下常用的分析工具:

我个人常用的是py_inspect和spy++。

多数情况下都是需要打开应用的,实现方式也很简单:

backend参数根据实际情况选择传uia还是win32。

start方法其实可以传两个参数,除了目标应用的启动程序地址,还可以传一个timeout,如果不传,默认是5s。如果你的目标程序启动、运行都很慢,可以将timeout设置久一点。

如果要操控的应用已经处于启动状态,可以直接进行连接,而连接方式有多种可以选择:

其中Windows的pid可以通过任务管理器进行查看:

但是我在实际操作的时候使用窗口句柄没有成功过,可能是我使用姿势不对,不过还是不推荐使用窗口句柄。

title_re参数传递的是应用的部分名称,class_name可以通过py_inspect查询到。

前面获取的对象都是应用,但是我们实际操作的是应用窗口,这里就来介绍怎么获取窗口和对话框。

最常用的是通过 title定位:

如果不清楚定位工具中的title在哪个位置,显示的是什么,可以通过print_control_identifiers()方法将所有的title都打印出来:

通过title定位的时候需要注意一下中英文的影响,如果是中文,可能会有编码问题,需要转码。

title其实只是window()方法中的一种关键字参数,window()方法可以接收很多中的关键字参数,且这些参数可以组合使用,例如这样:

主要参数有这些:

通过top_window()也能比较容易地获取到窗口,但是这个方法获取的是 程序的顶级窗口,但可能不是Z-Order中的顶级窗口。所以这个方法使用的时候多调试几次。

窗口的操作主要有最小化、最大化、恢复、关闭窗口:

控件的定位其实和窗口的定位基本一致,不太清楚为什么pywinauto在设计的时候会将窗口和控件作为一类东西。

相对于前面定位窗口的window()方法,定位控件的时候推荐使用child_window(),因为直接使用windows()的话,如果控件不是在当前窗口的子控件,是子子控件,就会定位不到,而child_window()方法就不会有这个问题,当然相对的缺点就是当控件深度太深的时候,执行这个方法会比较耗时。

child_window()方法传递的参数和window()是一样的。

控件自带了一些操作方法:

当这些不好用的时候,比如你的控件不支持点击,但是你又想点击一下,可以使用鼠标操作的一些方法:

测试过程中可能会需要截图作为证据,截图的方法也比较简单:

pywinauto也提供了键盘操作的方法:

pywinauto有几个设置等待时间的方式,这里介绍一个:

这里简单的演示一下用Wireshark自动抓包并保存:

PC端自动化测试使用到的python模块主要有pywinauto、win32gui、pyautogui。这里介绍的p ywinauto主要使用到Application类,用于应用程序管理(打开与关闭应用等)、窗口管理(最小化、最大化、关闭窗口)、控件操作。

pywinauto的功能其实挺丰富的,但是真正用到的其实只是其中很小的一块,感兴趣的同学可以多去官网翻一翻。

如何做好python自动化运维

随着移动互联网的普及,服务器运维所面临的挑战也随之越来越大。当规模增长到一定程度,手动管理方式已经无法应对,自动化运维成为解决问题的银弹。Python凭借其灵活性,在自动化运维方面已经被广泛使用,能够大大提高运维效率,服务器集群的规模越大,优势越明显。现在不论是Linux运维工程师还是Unix运维工程师都需要掌握Python,以提高运维效率。

第一个阶段:初级,掌握Python的语法和一些常用库的使用

掌握一门语言最好的方法就是用它,所以我觉得边学语法边刷Leetcode是掌握Python最快的方式之一。

很多只需要将Python作为脚本或者就是写一些小程序处理处理文本的话,到这一个阶段就足够了,这个阶段已经可以帮我们完成很多很多的事情了。但是如果是一个专业学习Python的,恐怕还需要努力的升级:首先,国内的大多数人都是学习了其他语言(C,C++,Java等)之后来学习Python的,所以Python和这些语言的不同,也就是pythonic的东西需要一些时间去学习了解和掌握;另外,对于自己领域的领域的库构架的掌握也需要很长的时间去掌握;最后,如果想独立完成一个Python的项目,项目的布局,发布,开源等都是需要考虑的问题。

第二个阶段:中级,掌握自己特定领域的库,掌握pythonic写法,非常熟悉Python的特性

推荐的第一本书是《编写高质量代码–改善python程序的91个建议》,这本书大概的提了下Python工程的文件布局,更多的总结了如何写出pythonic的代码,另外,也介绍了一些常用的库。

这里首先推荐在腾讯官方课程渠道上进行直播学习,有号就能无偿一直学,每天晚上都是高清直播(企鹅球球:1129中间是834最后加上这个903连在一起就能够了),除此之外基于python2.7在网上的书籍适合于重头开始一直读完,作为一个开发人员,除了基本的语法,这本书里面提到了一些其他的常用的库,看了廖老师写的很多东西,感觉他的思路,以及写博客写书的高度,概括性,原理性都十分好,这本书读完之后,相信就能够动手写很多东西了,能够尽情的玩转Python解说器了。

要想深入的了解Python,有的时候看看Python的源码也是很重要的,自己通过读懂源码,来彻底的了解Python的核心机制,这里推荐《Python源码剖析——深度探索动态语言核心技术》,这本书并没有看完,只是在需要深入了解Python某个功能或者数据结构的时候看看相关章节,也觉得受益匪浅。

自己领域的书籍和资料也肯定很多,比如web开发的构架都有很多,只有了解熟悉了所有构架,在选择的时候才能衡量利弊,然后深入掌握某些构架。

想要用python3做个软件对网页自动化操作,需要搭建什么环境,如何实现???

只用python就行了啊。vs和pycharm都算是编辑器没什么关系啊,就是用记事本编辑也行哦。那就用pycharm吧,大家都吹嘘它好用。

就是用python的urllib模块请求网页就可以了。

登录就是post数据,然后获得cookie(可能还有一下其他的东西),带着它就可以做一些评论。

评论就是根据按钮找到相关的网页链接,向它post/get数据。

评论采集就是请求相关的网页,获得评论的数据,可能是html或者json之类的,然后用beautifulsoup或者json分析,获得格式化后的数据。

以前用Python做过一个空间的自动点赞、自动回复说说留言、获取留言的程序。

只要就是分析链接和js脚本费点时间。其他地方都简单。