Python学习

Python包管理工具–pip(文档:https://pip.pypa.io/en/stable/installation/)

判断是否已安装:

plaintext
1
2
pip --version
pip3 --version

如果您的 Python 环境没有安装 pip,pip 的维护人员直接支持两种安装 pip 的机制:

ensurepip

Python 带有一个 ensurepip 模块[1],它可以在 Python 环境中安装 pip。

plaintext
1
C:> py -m ensurepip --upgrade
get-pip.py

这是一个 Python 脚本,它使用一些引导逻辑来安装 pip。

plaintext
1
C:> py get-pip.py
升级pip

通过运行以下命令升级您的pip

plaintext
1
C:> py -m pip install --upgrade pip

保留几位小数

’% .2f‘%(保留两位)

xlrd模块学习

–>import xlrd (导入模块)
–Excel文件 = xlrd.open_workbook(“文件名称”)(打开文件)
–>工作簿 = 文件.sheet_by_index(指定工作簿)(选择工作簿)
–>列表1=工作簿.col_values(指定列)

xlwt模块学习

–>import xlwt(导入模块)
–>Excel文件 = xlwt.Workbook(encoding = ‘utf-8’)(创建一个workbook,并设置编码)
–>工作簿 = Excel文件.add_sheet(‘工作簿名称’)(添加sheet)
–>工作簿.write(1, 0, label = ‘表头标题’)(写入excel工作簿,参数对应 行,列,值)
–>Excel文件.save(‘Excel文件名’)(保存)
–>样式 = xlwt.XFStyle()(初始化样式)
–>字体 = xlwt.Font()(为样式创建字体)
–>字体.name = ‘字体名称’–字体.bold = True
–>字体.underline = True(下划线)
–>样式.font = 字体
–>工作簿.write(0, 0, ‘带样式的单元格’,样式)(带样式的写入)
–>工作簿.col(0).width = 3000(设置单元格宽度)
–>pattern = xlwt.Pattern()(创建模式对象Create the Pattern)
–>pattern.pattern = xlwt.Pattern.SOLID_PATTERN(My be: NO_PATTERN, SOLID_PATTERN, or 0x00 through 0x12)
–>style = xlwt.XFStyle()(创建样式对象Create the Pattern)
–>style.pattern = pattern(将模式加入到样式对象Add Pattern to Style)–工作簿.write(0, 0, ‘单元格内容’,style)(向单元格写入内容时使用样式对象style)
–>style.alimgnment.wrap = 1(设置自动换行)
–>Excel文件.save(‘Excel文件名’)(保存)

PyMysql模块

–> import pymysql (导入模块)
–> db = pymysql.connect(host=‘本机地址’,user=‘用户名’,password=‘用户密码’,database=‘数据库名’,port=‘主机端口’,charset=‘编码方式’)(获取本地连接)
–> sql = ‘select * from where i < %s’(sql模板语句)
–> curses = db.cursor()(获取连接的控制台对象)
–> curses.executemany(参数1:sql模板,参数2:[(),(),()]列表-元组)(在控制台要执行的sql语句)(批量添加)execute(单个执行)
–> curses.fetchone()(查询集合中一条数据返回一个元组)
–> curses.fetchall()(查询集合中所有数据返回一个元组)
–> db.commit()(提交连接数据到数据库)
–> db.rollback()(撤销连接数据)
–> courses.close()(关闭控制台)
–> db.close()(关闭连接)

单元测试-参数自动化(ddt)

–> 导入包
python
1
import unittest
python
1
from ddt import ddt, data, unpack
–> 使用
python
1
2
3
4
5
6
7
8
9
@ddt
class Test_Calc(unittest.TestCase):

@data(*[[a,b,c],[a,b,c]])
@unpack
def test_Sum(self, a, b, c):
calc = Calculator()
s = calc.Sum(a, b)
self.assertEqual(c, s)

自动执行单元测试用例生成测试报告

–>导入包
python
1
2
from HTMLTestRunner import HTMLTestRunner
import unittest
–>使用
python
1
2
3
4
5
6
7
8
9
test_Calculator = unittest.defaultTestLoader.discover('F:\Python学习\Python_Learn\Calculator_Test', pattern='Test*.py')#读取项目单元测试

Runner = HTMLTestRunner.HTMLTestRunner(
title='计数器的加法-减法-乘法-除法测试',#报告标题
description='展示加法-减法-乘法-除法测试的报告',#报告详情
verbosity=2,
stream=open(file='计算器测试报告.html', mode='w+', encoding='utf-8')#创建测试报告并写入
)
Runner.run(test_Calculator)#自动执行单元测试用例

SMTP邮箱发送模块

–>导入包
python
1
2
3
from email.mime.multipart import MIMEMultipart
import smtplib
from email.mime.text import MIMEText
–>使用
python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
"""
邮件格式-附件格式
message = MIMEMultipart()
message['From'] = '13142462887@163.com'
message['To'] = '13142462887@163.com'
message['Subject'] = '陈虎的计算器的加法-减法-乘法-除法的测试报告'
message.attach(MIMEText('测试报告', 'plain', 'utf-8'))

pfile = '计算器测试报告.html'
pdffile = MIMEApplication(open(pfile, 'rb').read())
pdffile.add_header('Content-Disposition', 'attachment', filename=pfile)
message.attach(pdffile)
"""
"""
邮件格式-HTML格式
with open('F:\Python学习\Python_Learn\Calculator_Test\计算器测试报告.html', 'rb') as file:
mail_body = file.read()
message = MIMEText(mail_body, 'html', 'utf-8')
msg = MIMEMultipart('mixed')
msg.attach(message)
message['From'] = '13142462887@163.com'
message['To'] = '13552648187@163.com'
message['Subject'] = '陈虎的计算器的加法-减法-乘法-除法的测试报告'
"""
python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
with open('F:\Python学习\Python_Learn\Calculator_Test\计算器测试报告.html', 'rb') as file:#打开测试报告
mail_body = file.read()#读取测试报告文件
message = MIMEText(mail_body, 'html', 'utf-8')#创建邮件内容,格式,编码
msg = MIMEMultipart('mixed')#创建内容容器
msg.attach(message)#添加附件
message['From'] = '13142462887@163.com'#定义发送者
message['To'] = '13552648187@163.com'#定义接收者
message['Subject'] = 'Test_calc_陈虎'#定义主题名


try:
Server = smtplib.SMTP_SSL('smtp.163.com', 465)#服务器地址,端口
Server.login('13142462887@163.com', 'YUSJGLEQZKELPLNI')#用户名,SMTP授权码
Server.sendmail('13142462887@163.com', '13552648187@163.com', message.as_string())#发送邮箱,接收邮箱,发送内容
Server.quit()#退出服务
print("邮件发送成功")
except smtplib.SMTPException:
print("Error: 无法发送邮件")
问题:
报错:AttributeError: module ‘time’ has no attribute ‘clock’
原因:版本舍弃部分属性方法,版本更新问题
解决:导入time模块
plaintext
1
2
import time
time.clock = time.perf_counter
报错:AttributeError:“ElementTree”对象没有属性“getiterator”
原因:在新版python3.9中,windows中使用的更新删除了getiterator方法,所以我们老版本的xlrd库调用getiterator方法时会报错
解决:

image-20230807134137933