python自动化模块之实践一
1、探测Web服务质量方法:
python版本3.5.2,pycurl版本:pycurl-7.43.0.win-amd64-py3.5
# -*- coding: utf-8 -*- import os, sys import time import sys import pycurl URL = "http://www.baidu.com" #探测的目标URL c = pycurl.Curl() #创建一个Curl对象 c.setopt(pycurl.URL, URL) #定义请求的URL常量 c.setopt(pycurl.CONNECTTIMEOUT, 5) #定义请求连接的等待时间 c.setopt(pycurl.TIMEOUT, 5) #定义请求超时时间 c.setopt(pycurl.FORBID_REUSE, 1) #屏蔽下载进度条 c.setopt(pycurl.MAXREDIRS, 1) #完成交互后强制断开连接,不重用 c.setopt(pycurl.NOPROGRESS, 1) #指定HTTP重定向的最大数为1 c.setopt(pycurl.DNS_CACHE_TIMEOUT, 30) #设置保存DNS信息的时间为30秒
#创建一个文件对象,以"wb"方式打开,用来存储返回的http头部及页面内容 indexfile = open(os.path.dirname(os.path.realpath(__file__)) + "/content.txt", "wb") c.setopt(pycurl.WRITEHEADER, indexfile) #将返回的HTTP HEADER定向到indexfile文件对象 c.setopt(pycurl.WRITEDATA, indexfile) #将返回的HTML内容定向到indexfile文件对象 try: c.perform() #提交请求 except Exception as e: print("connecion error:" + str(e)) indexfile.close() c.close() sys.exit() NAMELOOKUP_TIME = c.getinfo(c.NAMELOOKUP_TIME) #获取DNS解析时间 CONNECT_TIME = c.getinfo(c.CONNECT_TIME) #获取建立连接时间 PRETRANSFER_TIME = c.getinfo(c.PRETRANSFER_TIME) #获取从建立连接时间到准备传输所消耗的时间 STARTTRANSFER_TIME = c.getinfo(c.STARTTRANSFER_TIME) #获取从建立连接时间到传输开始消耗的时间 TOTAL_TIME = c.getinfo(c.TOTAL_TIME) #获取传输的总时间 HTTP_CODE = c.getinfo(c.HTTP_CODE) #获取HTTP状态码 SIZE_DOWNLOAD = c.getinfo(c.SIZE_DOWNLOAD) #获取下载数据包大小 HEADER_SIZE = c.getinfo(c.HEADER_SIZE) #获取HTTP头部大小 SPEED_DOWNLOAD = c.getinfo(c.SPEED_DOWNLOAD) #获取平均下载速度 print("HTTP状态码:%s" % (HTTP_CODE)) print("DNS解析时间:%.2f ms" % (NAMELOOKUP_TIME * 1000)) print("建立连接时间:%.2f ms" % (CONNECT_TIME * 1000)) print("准备传输时间:%.2f ms" % (PRETRANSFER_TIME * 1000)) print("传输开始时间:%.2f ms" % (STARTTRANSFER_TIME * 1000)) print("传输结束总时间:%.2f ms" % (TOTAL_TIME * 1000)) print("下载数据包大小:%d bytes/s" % (SIZE_DOWNLOAD)) print("HTTP头部大小:%d byte" % (HEADER_SIZE)) print("平均下载速度:%d bytes/s" % (SPEED_DOWNLOAD)) indexfile.close() c.close()
运行结果:HTTP状态码:200
DNS解析时间:16.00 ms
建立连接时间:47.00 ms
准备传输时间:47.00 ms
传输开始时间:109.00 ms
传输结束总时间:219.00 ms
下载数据包大小:102198 bytes/s
HTTP头部大小:989 byte
平均下载速度:466657 bytes/s
2、pip和easy-install使用来下载python相关扩展资源包的,用cmd进入到下载好的pip(pip-9.0.1)和easy_install(ez_setup-0.9)文件夹下面,使用python setup.exe install 进行安装,64位操作系统的话easy_install使用python ez_setup.py install 进行安装,安装好后会在python3.5(我使用的是python3.5.2版本)文件下面的Scripts文件夹生成相应文件,然后在cmd中进入Scripts下面就可以使用了,比如要安装xlsxwriter模块,只需要执行pip install xlsxwriter或easy_install xlsxwriter就可以了,截图如下:
easy_install(ez_setup-0.9)下载地址:https://pypi.python.org/pypi/ez_setup/0.9 pip下载地址:https://pypi.python.org/pypi/pip/9.0.1
3、xlsxwriter模块功能演示
#!/usr/bin/env python3 # coding: utf-8 import xlsxwriter workbook = xlsxwriter.Workbook('demo.xlsx') #创建一个excel文件 worksheet = workbook.add_worksheet() # 创建一个工作表对象. worksheet.set_column('A:A', 20) # 设定第一个列A宽度为20像素 bold = workbook.add_format() #定义一个加粗的格式对象 bold.set_bold() worksheet.write('A1', 'Hello') #A1单元格写入"hello" worksheet.write('A2', 'World', bold) #在A2单元格写入"world"并引用加粗格式对象bold worksheet.write('B2', u'中文测试', bold) #在B2单元格写入“中文测试”并引用加粗格式对象bold worksheet.write(2, 0, 32) #用行列表示法写入数字'32'与'35.5' worksheet.write(3, 0, 35.5) #行列表示法的单元格下标以0作为起始值,'3,0'等价于'A3' worksheet.write(4, 0, '=SUM(A3:A4)') #求A3:A4的和,并将结果写入'4,0',即'A5' #worksheet.insert_image('B5', 'img/python-logo.png') # 在B5单元格插入图片 workbook.close()
输入结果如下图:
4、