python自学笔记
丶凉
一位秀发茂密的软件测试工程师,喜欢python,目标是自动化工程师
工作中遇到了很多坑,博客大多是我的爬坑日记,希望能把你从坑里拉一把 ♥
展开
-
Python+PySide2:使用多线程处理界面卡死的情况
本篇主要是梳理一下,在使用 Pyside2 模块的时候,利用多线程处理页面假死【exe未响应】的问题原创 2023-01-26 00:45:07 · 2417 阅读 · 1 评论 -
Python+xlrd:实现Excel文件内容读取(全文件or指定sheet页)
Python+xlrd:实现Excel文件内容读取原创 2022-10-01 15:09:29 · 2803 阅读 · 0 评论 -
Python:AES+Base64的加密与解密(ECB模式)
记录AES+Base64加密解密的代码实践原创 2022-07-28 17:25:45 · 2025 阅读 · 1 评论 -
Pytest:yield的简单使用(方法执行后的数据处理)
本篇主要以代码的方式讲解yield方法的实际运用原创 2022-07-25 14:31:45 · 1759 阅读 · 0 评论 -
Python:迭代器和生成器(个人学习笔记)
本篇主要记录一下,学习迭代器和生成器的一些课堂笔记一、可迭代对象迭代器和生成器都是围绕【可迭代对象】进行的操作的方法那么到底什么是:可迭代对象呢?简单来说,支持 for循环、map方法的对象,都叫做:可迭代对象二、生成器【只能通过生成器表达式() 或 函数中的 yield 方法】生成器表达式 ( ) # 使用生成器方法创建:生成器对象a = (i for i in range(1,11))print('a为:',a) # a为: <generator ob原创 2021-12-19 20:53:28 · 557 阅读 · 0 评论 -
Pytest+Jenkins:ERROR: Build step failed with exception 解决办法
Pytest+Jenkins:构建报错 ERROR: Build step failed with exception 以及 Build step 'Allure Report' marked build as failure 的解决办法原创 2021-11-08 22:41:13 · 3375 阅读 · 4 评论 -
Python+Pytest:E ModuleNotFoundError: No module named ‘xxx‘ 解决办法
今天调试代码,遇到了如下的报错:E ModuleNotFoundError: No module named 'xxx'大家肯定会吐槽:这不就是你导入模块的时候出错,或是说你根本没有这个模块嘛解决方向一:将 ‘XXXX’ 包放在 python 的 site-package 文件夹下解决方向二:可能是 ‘XXXX’ 包没有新建 _ _init _ _.py解决方向三: _ _init _ _.py 需要声明包含 ‘XXXX’ 包的函数但是问题显然没有想象中这么简单,尝试了以上所有方法原创 2021-11-08 17:25:51 · 2193 阅读 · 1 评论 -
Pytest+Allure:自定义报告窗口标题、左上角logo、测试报告标题
先把我自定义内容后的报告截个图给你们看一、Allure 浏览器窗口文案自定义我们只需要找到生成的 Allure 的 HTML 测试报告,修改 title 字段内容写个 set_windos_title 方法,并在 run.py 的执行文件去调用# 设置报告窗口的标题def set_windos_title(new_title): """ 设置打开的 Allure 报告的浏览器窗口标题文案 @param new_title: 需要更改的标题文案 【 原文案为:Al.原创 2021-11-04 20:42:00 · 2756 阅读 · 11 评论 -
Pytest:自定义命令行参数,实现代码切换环境执行
原文参考:pytest接口测试(九)–环境变量(自定义命令行参数)需求描述:公司项目上线,一般要经过三个环境的测试,例如我这边就有:开发环境、测试环境、正式环境自动化代码一般不会变动,所以这边仅需要 手动切换运行环境 即可于是乎我想目光投向了脚本执行方法 run.py 上代码实现:在 conftest.py 文件定义一个全局的命令行参数# 添加命令行参数def pytest_addoption(parser): parser.addoption( "--cmdh转载 2021-11-02 10:22:57 · 679 阅读 · 1 评论 -
PySide2+Python:设置窗口背景颜色
一、导入 QPalette 库from PySide2.QtGui import QPalette二、设置背景颜色# 创建一个实例化对象palette = self.window.palette()# 设置背景颜色,QColor(RGB颜色值)palette.setColor(QPalette.Background,QColor(255,192,203))# 窗口加载调色板配置信息self.window.setPalette(palette)# 窗口自动填充背景(启用)self.原创 2021-10-27 15:13:25 · 4080 阅读 · 0 评论 -
PySide2+Python:SetStyleSheet 读取并加载 .css 或者 .qss 样式文件
没有添加样式之前:添加了样式之后:代码实现:在 _ _ init _ _ 文件中,读取 .css 或者 .qss 样式文件并加载样式# 1、提供 .css 或者 .qss 样式文件路径style_file = "./lightblue/lightblue.css"# 2、读取样式文件内容with open(style_file, "r", encoding="UTF-8") as file: style_sheet = file.read() # 3、加载原创 2021-10-27 15:02:53 · 1670 阅读 · 1 评论 -
PySide2+Python:qdarkstyle 暗黑风格样式库
qdarkstyle:用了这个库之后,可以使我们的GUI 交互界面变成黑色的使用方法:先导入 qdarkstyle 库pip install qdarkstyle 在 _ _ init _ _ 文件加入样式设置语句self.window.setStyleSheet(qdarkstyle.load_stylesheet(qt_api='pyside2'))没有添加暗黑样式之前:添加了暗黑样式之后【部分控件变成了圆角】:Demo 代码调试:# -*- -*-原创 2021-10-27 14:42:32 · 1895 阅读 · 1 评论 -
Pyinstaller:AttributeError: module ‘enum‘ has no attribute ‘IntFlag‘ 问题解决
文章参考:成功解决AttributeError: module ‘enum’ has no attribute ‘IntFlag’?今天使用 Pyinstaller 打包 .exe 文件,出现了以下的报错信息:问题解决办法:1. 定位到 Python 安装目录下的 : \Lib\site-packages 目录2. 删除 enum 打头的两个文件夹即可...转载 2021-10-19 17:29:09 · 223 阅读 · 0 评论 -
Pytesst+Allure:定制化输出美化版测试报告
@allure.feature:功能点的描述,理解成模块; 下层是 [email protected]:测试类的描述; 下层是 [email protected]:用例标题描述@allure.description: 用例的描述文案@allure.severity: 用例等级的描述,severity_level 枚举blocker: 阻塞缺陷(功能未实现,无法下一步)critical:严重缺陷(功能点缺失)normal: 一般缺陷(边界情况,格式错误)minor: 次要缺陷(原创 2021-10-17 09:04:56 · 311 阅读 · 0 评论 -
Pytest:ModuleNotFoundError: No module named ‘_pytest.resultlog‘ 报错解决办法
解决办法参考:https://www.cnblogs.com/QiKa/p/14457269.html今天逛 Gitee ,克隆了一些开源的 Pytest 代码到本地研究,在 PyCharm 中一键添加、更新了很多第三方插件,导致我之前完美运行的代码突然报了如下所示的错误信息:ModuleNotFoundError: No module named '_pytest.resultlog'分析原因:因为安装了 pytest-rerunfailures(这个插件是失败重跑插件)然转载 2021-10-14 18:28:56 · 867 阅读 · 0 评论 -
Python:字典嵌套字典的数据类型,如何取出字典外部以及层级嵌套字典的键值对
思路整理:1. 循环遍历取出外层的 key 和 value 的值2、判断遍历后的 value 数据类型是否为:字典 dict3、if true,则再次循环遍历取出 key 和 value 的值代码实现:# -*--*- coding: utf-8 -*--*-# @Time : 2021/10/13 21:23# @Author : PythonKimo# @File : demo_test.py# -*-*-*-*-*-*-*-*-*-*-*-*-*-'''.原创 2021-10-13 22:38:17 · 2478 阅读 · 0 评论 -
Python:列表去重的两种方法
方法一:使用 set() 方法进行去重# 一、准备一个带有重复数据的列表list_1 = [1,2,3,1,5,6,2]# 二、使用 set() 方法进行去重处理#【注:仅用 set() 方法处理后的数据类型并不是 list 】result = set(list_1)print("仅用 set() 方法处理后的数据及数据类型:",result,type(result))# 三、我们需要将返回数据使用 list() 方法格式化处理一下new_list = list(result)prin原创 2021-10-13 22:00:26 · 4942 阅读 · 0 评论 -
Pytest:Allure的下载与安装
从 https://repo.maven.apache.org/maven2/io/qameta/allure/allure-commandline/ 下载Allure 非常快捷方便,安装方法也很简单:解压后将bin文件目录配置到path环境变量即可原创 2021-10-03 19:17:25 · 6166 阅读 · 2 评论 -
Pytest:fixture组件的简单使用方法
fixture 可以构建测试准备阶段的步骤和数据下面使用简单的案例演示:# -*--*- coding: utf-8 -*--*-# @Time : 2021/10/2 13:49# @Author : PythonKimo# @File : test_002.py# -*-*-*-*-*-*-*-*-*-*-*-*-*-import pytestclass TestUserLogin: @pytest.fixture def get_token(self)原创 2021-10-02 16:29:04 · 142 阅读 · 0 评论 -
Python:Json格式化参数方法dumps()的使用
json.dumps() 方法:将 Python 对象转换为 JSON 字符串import jsonrequest_json = {'score': 21.2,'name': '张三'}res = json.dumps(request_json)print(res)这边查看结果发现,中文被转义后输出了......好在dumps()方法提供了很多关键字参数来格式化输出:def dumps(obj, *, skipkeys=False, ensure_ascii=True, c.原创 2021-09-30 15:40:51 · 6095 阅读 · 0 评论 -
pip:python -m pip install --upgrade pip 解决办法
在使用 pip 安装 Flask 的时候,命令行报错:You are using pip version 9.0.1, however version 21.2.4 is available.You should consider upgrading via the 'python -m pip install --upgrade pip' command.按照提示:python -m pip install --upgrade pip 更新pip版本仍然报错You are using pip v原创 2021-09-29 14:44:09 · 683 阅读 · 0 评论 -
Python:全局替换文件夹下所有文件内容的字符串
代码参数详解:import osdef listFiles(dirPath): '''遍历指定文件夹下打印所有的文件 :param dirPath: 指定遍历的文件夹路径 :return: 一个列表,包含指定文件夹下所有的文件绝对路径 ''' # 准备一个空列表,用来存储遍历数据 fileList = [] ''' os.walk(dirPath) :走查指定的文件夹路径 root :代表目录的路径 .原创 2021-09-29 13:46:04 · 1282 阅读 · 0 评论 -
Python:os.walk() 获取指定文件夹下所有的文件绝对路径【包含层级目录】
python通过使用:os.walk()方法,遍历走查指定的文件夹, 获取所有目录下【包含层级目录】所有的文件绝对路径,存储列表中返回数据原创 2021-09-29 09:43:50 · 1783 阅读 · 0 评论 -
Python:设置 float 类型的小数保留位数
float数据类型,保留小数点的方式有三种一、round ( ) 函数方法 【自动四舍五入,默认去除多于的 " 0 "】:'''round(A,B): 自动四舍五入,默认去除多于的 " 0 " A : 需要计算的数据 B : 保留的小数点位数'''x = 3.141596257print(round(x,3))>>> 3.142y = 3.0000print(round(y,3))>>> 3.0二、" %.3f " %原创 2021-09-28 17:33:34 · 25063 阅读 · 1 评论 -
Python:exp()函数的使用
python处理带有exp规则的算法转载 2021-09-27 19:50:29 · 9208 阅读 · 0 评论 -
Python:次方计算
Python :使用两个【* *】即可实现次方计算① 计算 2³ 的值print(2**3)>>>> 8②计算 10³ 的值print(10**3)>>>> 1000原创 2021-09-27 19:33:23 · 5718 阅读 · 0 评论 -
Pyinstaller:moviepy打包报错AttributeError: module ‘moviepy.audio.fx.all‘ has no attribute ‘audio_fadein‘
使用Python+PySide2开发工具时,使用到了第三方库 moviepy本地调试是OK的,打包运行之后报错了记录一下分析问题并找寻解决办法的过程一、运行程序,通过命令行窗口的日志分析定位问题1. 关于命令行窗口执行程序的方法请参考一下我之前写的文章https://blog.csdn.net/J_____Q/article/details/1138943692. 查看运行日志后发现,报错的原因为:audio_fadein 模块缺失3. 参考大佬的文章后了解到:参考文章页面跳转movi原创 2021-09-05 23:29:56 · 9475 阅读 · 3 评论 -
Python:sorted函数使用方法
一、sort(): 函数列表排序,可使用List类的成员函数sort,语法如下:'''key : 比较函数reverse:排序规则,True为倒序,False为正序'''# 准备一个列表对象my_list = [20,75,55,60]# 结果正序List.sort(my_list, key=None, reverse=False) --> 输出结果:[20, 55, 60, 75]# 结果倒序List.sort(my_list, key=None, reverse=True转载 2021-08-02 17:13:38 · 986 阅读 · 0 评论 -
Selenium:屏幕截图并自定义裁剪大小
一、正常流程,打开浏览器跳转到百度# 导入 Pillow 的 Image :pip install Pillowfrom PIL import Image# 导入浏览器驱动from selenium import webdriver# 创建一个驱动 driver = webdriver.Chrome()# 打开url,跳转到指定页面driver.get("https://www.baidu.com")二、截取当前屏幕大图,另存为指定路径的文件# 对当前屏幕进行截图,并保存为指定路径文原创 2021-07-08 18:25:45 · 2131 阅读 · 0 评论 -
Python:setattr()、getattr()、delattr() 设置/获取/删除动态变量
1、setattr():设置动态变量参数详解:setattr(类名/对象名 , 属性名 , 属性值)'''setattr():设置动态变量'''class Person(): '''初始化方法''' def __init__(self,name,sex): self.name = name self.sex = sex# 类的实例化对象,赋值 name和sexBoy = Person("张三","男")# setattr(类名/对象名 , 属性原创 2021-06-12 16:56:05 · 691 阅读 · 2 评论 -
Python:简单记录关于【继承】的学习
1、先创建一个父类'''1、先创建一个父类'''class Father_Class(): '''初始化变量:身高,知识,钱''' def __init__(self,height,knowledge,money): self.height = height self.knowledge =knowledge self.money = money def face(self): print("脸很大")原创 2021-06-12 15:19:44 · 137 阅读 · 2 评论 -
Python+open():操作文件读写
目录操作 .txt 文件的内容,进行读写操作读写文件内容open方法:open("文件路径","读写方式","编码格式")一、读取文件内容二、写入文件内容三、文件追加写入内容四、二进制操作文件【png、jpg、pdf、excel 均可操作】五、with open() 方法:六、读取方法之:read( )、readline( )、readlines( )操作 .txt 文件的内容,进行读写操作读写文件内容open方法:open(“文件路径”,“读写方式”,“编码格式”)常见读写方式释义原创 2021-06-06 09:38:03 · 550 阅读 · 2 评论 -
Python+PySide2:Label 插入动态GIF图片
功能实现:代码示例:from PySide2.QtWidgets import QApplication,QMainWindow,QLabelfrom PySide2.QtGui import QMovieclass Stats(): def __init__(self): ''' 一、首先需要创建主窗口 ''' # 创建一个主窗口对象【只做定制处理,并非直接展示】 self.window = QMainWindow() #原创 2021-05-23 14:59:01 · 2203 阅读 · 0 评论 -
Python+PySide2:LCD Number 控件使用方法
LCD Number:时间显示器效果图如下:代码实现:from PySide2.QtWidgets import QApplication,QMainWindow,QLCDNumber,QLabelfrom PySide2.QtCore import QTimerimport timeclass Stats(): def __init__(self): ''' 一、首先需要创建主窗口 ''' # 创建一个主窗口对象【只做定制处理,并非直接展示】原创 2021-05-22 23:46:50 · 1653 阅读 · 0 评论 -
Python:上传文件接口,如何获取路径的后缀以及文件的MIME类型
使用Python调用上传文件的接口时,需要根据文件类型来改变请求头 Content-Type 类型,如何获取文件绝对路径的后缀,以及根据文件路径自动返回文件类型呢?一、获取文件绝对路径的后缀:os.path.splitext() 方法import os# file_name :文件的绝对路径file_name = "D:/image/1620283983.jpg"# os.path.splitext 方法会返回两个参数,文件路径的前缀和后缀res = os.path.splitext(原创 2021-05-10 17:53:51 · 1003 阅读 · 0 评论 -
Python GUI图形化小工具编程学习-- PySide2 环境搭建(一)
Python 图形界面工具开发一、用 Python 语言开发 跨平台 的图形界面的程序,主要有3种选择:Tkinter基于Tk的Python库,这是Python官方采用的标准库,优点是作为Python标准库、稳定、发布程序较小,缺点是控件相对较少。wxPython基于wxWidgets的Python库,优点是控件比较丰富,缺点是稳定性相对差点、文档少、用户少。PySide2、PyQt5基于Qt 的Python库,优点是控件比较丰富、跨平台体验好、文档完善、用户多。缺点是 库原创 2021-01-21 13:36:46 · 475 阅读 · 2 评论 -
python3.x:简单正则表达式判断用户输入的手机号格式【源码示例】
如何使用正则判断输入的手机号格式是否正确呢?代码示例:# 导入 re 模块import re# 准备好一条数据phone = "17666666666"# 变量接收正则匹配结果result = re.compile(r'^1\d{10}$' ).findall(phone)# 打印结果的类型和结果print(type(result ),result )1、这里输出的结果是:C:\Users\user\AppData\Local\Programs\Python\Python36\.原创 2021-04-09 20:16:06 · 1100 阅读 · 1 评论 -
Python3.x :操作剪切板的读取与写入
一、为了完成下图工具【一键复制】的功能,找到了这个方法代码演示:操作剪切板的读取与写入方法二、源码演示【方法固定,只需要替换调用的传参即可】: '''导入需要的:win32clipboard,win32con ''' import win32clipboard as wc import win32con def get_text(): """ 剪切板读取 """ wc.OpenClipboard() text = wc.GetCli转载 2021-04-02 10:12:02 · 552 阅读 · 0 评论 -
python+mysql:fetchall()和fetchmany()方法未能正确查询到数据
# pymysql 需要安装 :pip install pymysqlimport pymysql# 1、连接数据库,将连接信息保存在 con 里面【变量名自定义,无要求】con = pymysql.connect(host="127.0.0.1",port=3306,user="root",password="123456",database="jzq_test")# 2、操作数据库:创建并使用 curson 游标,可以执行SQL语句,获取数据等cur = con.cursor()# 准备.原创 2021-03-30 19:47:58 · 964 阅读 · 2 评论 -
Python + PySide2:控件CheckBox的功能使用方法【Designer工具】
如图所示,复选框 CheckBox ↓ :一、首先我先演示一下如何实现【一键全选】[ 一键取消全选 ] : True 改为 False 即可 def __init__(self): self.ui.pushButton.clicked.connect(self.All_Choose) # 按钮绑定方法 '''定义一个全选按钮的方法''' # setChecked():传入True则为选中,传入False则为取消选中 def A原创 2021-03-23 16:39:33 · 4363 阅读 · 1 评论