![](https://img-blog.csdnimg.cn/20210228152323233.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
Python笔记
文章平均质量分 87
Python笔记
测试开发小记
欢迎关注微信公众号【测试开发小记】,分享测试开发相关技术笔记,包括Python、测试工具、自动化测试、数据库、Linux、持续集成等
展开
-
使用pip2pi和nginx搭建私有pip镜像源方法
在内网环境下部署python开发环境,安装python第三方库比较麻烦,特别是安装需要多个依赖的库。一种比较好的解决方案是搭建一个本地的私有pip镜像源,有多个方案可以选择,比如pypiserver、pip2pi等,本文介绍使用python的pip2pi库,搭配nginx来搭建pip镜像源的方法。原创 2024-06-17 08:10:31 · 667 阅读 · 0 评论 -
Python PyInstaller打包方法介绍
为了将开发好的Python工具交付给其他人使用,除了在目标电脑部署Python编译环境以外,我们还可以将它打包成可执行文件,这样目标电脑不需要安装Python环境就可以运行。将Python程序打包成可执行文件的方法有多种,比如Nuitka、PyInstaller等,本文介绍比较常用的打包工具PyInstaller的使用方法。原创 2024-06-02 21:33:41 · 1327 阅读 · 0 评论 -
Python环境配置以及包管理方法详细介绍
本文记录一下在Windows和Linux上安装部署Python环境以及Python包管理方法。原创 2024-05-23 15:57:04 · 735 阅读 · 0 评论 -
Python中 os.popen、os.system和subprocess.popen方法介绍
本文只是简单介绍了os.popen、os.system和subprocess.popen这三个方法,subprocess.popen还有更多的用法,它提供了对进程更细粒度的控制。subprocess.popen方法可以替代os.popen、os.system方法,subprocess.popen是他们的超集,如果只是简单的cmd命令调用可以直接使用os.popen和os.system,更复杂的控制可以选用subprocess.popen方法,按照自己实际情况进行选择。原创 2023-03-26 19:20:53 · 3861 阅读 · 2 评论 -
Python日志系统logging使用介绍
日志记录对于软件开发调试和运行都非常重要。Python标准库提供了一个日志记录系统,可以很方便的在python项目中添加日志记录。本文将详细介绍如何使用python的 `logging` 模块来记录日志。原创 2023-03-09 08:35:11 · 334 阅读 · 1 评论 -
xls批量转换为xlsx格式文件
由于使用的PHP库解析xls格式文件有问题,而将xls格式转换为xlsx格式就可以解析,考虑到xls文件有很多,需要使用批量转换文件的方法,本文介绍两种方法。原创 2022-03-27 17:23:53 · 6963 阅读 · 2 评论 -
获取Python函数信息的方法
Python的反射机制可以动态获取对象信息以及动态调用对象,Python反射介绍 介绍了Python常用的反射函数使用方法,本文介绍如何获取对象中的函数注释信息以及参数信息。原创 2022-02-10 22:14:06 · 2890 阅读 · 0 评论 -
Python OCR工具pytesseract详解
pytesseract是基于Python的OCR工具, 底层使用的是Google的Tesseract-OCR 引擎,支持识别图片中的文字,支持jpeg, png, gif, bmp, tiff等图片格式。本文介绍如何使用pytesseract 实现图片文字识别。原创 2021-12-21 20:27:32 · 48034 阅读 · 10 评论 -
Python上下文管理器
在代码执行过程中会进行频繁的I/O操作,而计算资源往往是有限的,需要进行资源管理,保证这些资源在使用过后得到释放,防止发生资源泄露。Python中使用上下文管理器(context manager)进行资源管理,比如我们经常用到的with关键字,上下文管理器可以进行自动分配并且释放资源。原创 2021-12-07 20:46:07 · 1275 阅读 · 2 评论 -
Python文件及目录处理方法
Python可以用于处理文本文件和二进制文件,比如创建文件、读写文件等操作。本文介绍Python处理目录以及文件的相关方法。原创 2021-11-30 20:53:26 · 857 阅读 · 2 评论 -
Python3 PIL库问题:ImageChops.difference返回None
遇到一个关于python PIL库的问题:在python3中,两张明显不同的图片,使用ImageChops.difference 方法计算他们的差异,diff.getbbox()返回值为None,相同的代码在python2中运行就没有问题:im_source_obj = Image.open(self.im_source_path)im_target_obj = Image.open(self.im_target_path)diff = ImageChops.difference(im_source原创 2021-11-05 15:02:02 · 1473 阅读 · 0 评论 -
正则表达式实现跨行匹配
正则表达式(Regular expression)可用来检查文本中是否包含指定模式的字符串,通常是按行来处理(POSIX标准),因为.操作符通常不匹配换行符,如果要匹配多行怎么处理呢?本文介绍正则表达式跨行匹配实现方法。目录1. sed 命令删除多行2. Python正则表达式匹配多行① `re.DOTALL` 或者 `re.S` 参数② 表达式 `(.|\n|\r)*`③ 表达式 `[\s\S]*`④ 表达式 `(?s)`1. sed 命令删除多行测试文档test.txt内容如下:startt原创 2021-10-21 19:53:17 · 5741 阅读 · 0 评论 -
Python内存驻留机制
字符串驻留机制在许多面向对象编程语言中都支持,比如Java、python、Ruby、PHP等,它是一种数据缓存机制,对不可变数据类型使用同一个内存地址,有效的节省了空间原创 2021-07-22 22:24:26 · 1154 阅读 · 3 评论 -
Python yaml文件读写
PyYAML库读写yaml文件原创 2021-07-13 20:26:36 · 831 阅读 · 1 评论 -
Python json文件读写
JSON (JavaScript Object Notation)是一个受 JavaScript 的对象字面量语法启发的轻量级数据交换格式,本文介绍Python json库的使用,也就是json的序列化和反序列化方法。原创 2021-07-10 10:03:56 · 339 阅读 · 0 评论 -
Python函数的参数类型
python函数的参数类型主要包括必选参数、可选参数、可变参数、位置参数和关键字参数,本文介绍一下他们的定义以及可变数据类型参数传递需要注意的地方。目录必选参数可选参数位置参数可变参数关键字参数强制关键字参数Python函数的参数传递总结必选参数必选参数(Required arguments)是必须输入的参数,比如下面的代码,必须输入2个参数,否则就会报错:def test_divide(num1, num2): return num1/num2print(test_divide(1,2))原创 2021-07-02 07:32:09 · 2534 阅读 · 0 评论 -
Python 命令行参数解析之 Click
python命令行工具click使用方法原创 2021-06-30 21:32:29 · 854 阅读 · 0 评论 -
Python笔记:lambda匿名函数
在Python中,一般使用def关键字来定义普通函数。顾名思义,匿名函数意味着函数没有名称,Python使用lambda关键字定义匿名函数。在某些情况下,使用匿名函数可以简化代码,提高代码的可读性。本文介绍python匿名函数的使用方法。目录匿名函数filter()函数map() 函数reduce() 函数总结匿名函数Python匿名函数的语法格式:lambda argument1, argument2,... argumentN: expression匿名函数可以有多个参数,只有一个表达式。下原创 2021-06-24 21:12:38 · 627 阅读 · 4 评论 -
Python中的__new__、__init__以及metaclass
在Python的面向对象编程中,首先得创建实例对象,然后初始化实例对象,Python中__new__负责创建实例对象,__init__ 负责初始化对象,本文介绍__new__和__init__ 的区别以及Python中的元类。目录`__new__` 和 ` __init__`python实现单例模式python元类MetaClass什么是MetaClass定义元类PyYAML的序列化和反序列化序列化和反序列化PyYAML使用总结__new__ 和 __init____new__ 和 __init__原创 2021-06-23 07:06:06 · 1197 阅读 · 2 评论 -
Python反射介绍
反射机制是面向对象编程语言中比较重要的功能,可以动态获取对象信息以及动态调用对象,Python作为一门动态编程语言,当然也有反射机制,本文介绍Python反射函数使用方法。目录反射Python反射函数反射函数使用方法dir()callable()isinstance()和type()hasattr()getattr()setattr()delattr()应用动态调用动态属性设置反射反射的概念是由Smith在1982年首次提出的,主要是指程序可以访问、检测和修改它本身状态或行为的一种能力。在程序运原创 2021-06-17 21:20:48 · 801 阅读 · 3 评论 -
Python协程
文章Python多线程与多进程中介绍了并行,并发,多线程和多进程的概念。多线程 / 多进程是解决并发问题的模型之一,本文要介绍的协程也是实现并发编程的一种方式。协程使用的异步IO (asynchronous IO)不是多线程或者多进程的,它是一种单线程、单进程的设计。也就是说,协程可以实现并发调度,但它本身并不是并发的(单线程下的”并发“)。相比多线程和多进程,协程没有进程上下文切换导致的资源占用,运行效率更高。目录Asyncio协程爬虫多线程、多进程和协程如何选择总结最开始服务器并发使用的是多线程原创 2021-06-16 20:31:23 · 450 阅读 · 0 评论 -
Python中的闭包
闭包 (closure) 是函数式编程中的一个概念,Python虽然不是纯粹的是函数式编程语言,但它仍然具有函数式编程的一些特性。在以前的文章Python笔记:Python装饰器中介绍的装饰器其实就使用了闭包,本文来介绍一下Python中的闭包。目录嵌套函数和变量作用域嵌套函数局部变量和全局变量嵌套函数的变量作用域闭包总结嵌套函数和变量作用域介绍闭包之前,先理解什么是嵌套函数和变量作用域。嵌套函数函数嵌套就是在一个函数内部又定义函数:def TestFunc(val1): val =原创 2021-06-11 20:32:29 · 435 阅读 · 0 评论 -
算法笔记:位运算
计算机中的数据都是以二进制的形式存储在设备中,虽然十进制比二进制所需要的存储空间少,但二进制在硬件实现上要简单很多,而且在数模转换上也更加容易,因为只需要两种状态,所以计算机的底层运算都采用二进制。位运算就是对二进制数据进行的运算。使用合理的位运算可以提高代码在机器上的执行效率,本文将介绍常见的位运算以及Python中的位运算。目录位运算符Python位运算与 - &或 - |非 - ~异或 - ^左移 - <<右移 - >>位运算其它应用位运算符常见位操作符如下表:原创 2021-06-08 21:31:14 · 306 阅读 · 0 评论 -
Python对象及内存管理机制
Python是一门面向对象的编程语言,python中一切皆为对象。Python会对每一个对象分配内存空间,python的内存管理机制主要包括引用计数、垃圾回收和内存池机制。目录参数传递Python 参数传递1. 不可变数据类型2. 可变数据类型Python中的'==' 和 'is'Python浅拷贝和深度拷贝浅拷贝1. 不可变数据类型2. 可变数据类型深度拷贝Python垃圾回收引用计数标记清除分代回收gc模块Python内存管理机制:PymallocPymallocpython内存池金字塔总结参数传递原创 2021-06-01 21:19:03 · 883 阅读 · 2 评论 -
常见搜索算法(一):深度优先和广度优先搜索
搜索算法是非常常用的算法,用于检索存储在某些数据结构中的信息。最简单直接的就是暴力搜索,也就是线性搜索,但它的时间复杂度较高,在实际工程应用中很少使用,需要对它进行优化。比如二分查找,贪心算法等搜索算法,在算法笔记:树、堆和图中,提到了对图和二叉树的搜索算法:深度优先搜索(DFS)和广度优先搜索(BFS),如果知道起点和终点状态的情况下,还可以使用双向BFS。DFS和BFS根据特定的顺序进行依次搜索,效率也不高,启发式搜索(heuristic search)也就是A*算法引入估价函数进一步提升了搜索效率,原创 2021-05-30 17:42:18 · 2202 阅读 · 0 评论 -
Python多线程与多进程
进程(process)和线程(thread)是操作系统的基本概念,是操作系统程序运行的基本单元,本文简要介绍进程和线程的概念以及Python中的多进程和多线程。目录进程、线程什么是进程什么是线程并发、并行并发并行多线程适用场景Python GILPython多线程、多进程实例:CPU 密集型任务单线程多线程多进程Python多线程、多进程实例:IO密集型任务单线程多线程多进程协程总结进程、线程什么是进程进程是执行中的程序,是资源分配的最小单位:操作系统以进程为单位分配存储空间,进程拥有独立地址空间原创 2021-05-25 22:06:55 · 529 阅读 · 0 评论 -
算法笔记:哈希表、映射和集合
hash函数是根据关键字key计算出应该存储地址的位置,哈希函数把key转成哈希值来定位数据存储的位置,是基于哈希函数建立的一种查找表,Python 中的字典就是用哈希表来实现的。本文主要介绍哈希表、映射和集合这三种数据结构以及他们在python中用法。目录哈希表-Hash table哈希表哈希碰撞python 字典创建字典访问元素删除元素清除字典元素合并字典获取字典key,value值字典排序映射-Mappython 映射函数集合-Setpython集合并集交集差集对称差集增加元素删除元素清空集合冻结集原创 2021-05-16 22:47:08 · 7403 阅读 · 1 评论 -
Python笔记:命令行参数解析
有些时候我们需要通过命令行将参数传递给脚本,C语言中有个getopt()方法,python中也有个类似的命令行参数解析方法getopt()。python也提供了比getopt()更简洁的argparse方法。另外,sys模块也可以实现简单的参数解析,本文将对这3种命令行参数解析方法简要介绍。目录sys.argvgetopt方法argparse方法ArgumentParseradd_argumentparse_args总结sys.argvsys.argv是传入的参数列表,sys.argv[0]是当前py原创 2021-05-07 07:46:34 · 1013 阅读 · 0 评论 -
Python笔记:日期时间获取与转换
目录世界时、原子时和世界协调时世界时原子时世界协调时epoch time2038问题python timepython获取当前时间标准时间转换为epoch时间epoch时间转换为标准时间python datetime获取当前时间(本地时间)时间格式化timedeltapython 日期时间获取与转换世界时、原子时和世界协调时世界时世界时(Universal Time, UT)是根据地球自转周期确定的时间,1s为全年内每日平均长度的1/86400,由于地球绕太阳公转的轨道不是圆的,地球与太阳之间的距离原创 2021-03-19 20:39:56 · 828 阅读 · 0 评论 -
Python笔记:Python装饰器
目录python简单装饰器functools()带参数的装饰器装饰器的嵌套嵌套示例类装饰器装饰器使用实例统计函数执行时间登录认证装饰器是通过装饰器函数修改原函数的一些功能而不需要修改原函数,在很多场景可以用到它,比如① 执行某个测试用例之前,判断是否需要登录或者执行某些特定操作;② 统计某个函数的执行时间;③ 判断输入合法性等。合理使用装饰器可以极大地提高程序的可读性以及运行效率。本文将介绍Python装饰器的使用方法。python简单装饰器python装饰器可以定义如下:def my_decora原创 2021-03-13 01:15:00 · 569 阅读 · 0 评论 -
Python笔记:属性值设置和判断变量是否存在
目录以属性名为变量的方式给一个对象添加属性判断变量是否存在介绍Python设置属性值方法setattr()和判断变量是否存在的方法以属性名为变量的方式给一个对象添加属性使用 setattr 方法obj = SomeClass()key = 'key_name'val = 'key_value'setattr(obj, key, val)print(obj.key_name) 示例:给报文字段赋值from scapy.all import *layer = {"ether":"dst=原创 2021-02-16 13:54:14 · 895 阅读 · 2 评论 -
Python笔记:List相关操作
List相关操作小例子原创 2021-02-16 13:52:45 · 573 阅读 · 1 评论 -
Python笔记:字符串操作
本文记录一些Python字符串相关操作技巧。原创 2021-02-16 13:49:19 · 534 阅读 · 1 评论 -
Python PEP—Python增强提案
PEP的全称是Python Enhancement Proposals,Python增强提案。描述了Python的语言特性、功能、编程规范等,包括了技术规范和功能的基本原理说明,是了解Python语言的详细指南。PEP官网:https://www.python.org/dev/peps/PEP创建于2000年,到目前已经有上千个提案了,下面介绍几个值得仔细阅读了解的提案。1. PEP 8 - 编码规范PEP 8 – Style Guide for Python Code:定义了编写 Python 代原创 2021-02-13 20:35:44 · 846 阅读 · 2 评论 -
VSCode + Python环境配置
VSCode Python开发环境配置Visual Studio Code 下载安装Visual Studio Code下载地址: https://code.visualstudio.com/Download安装:设置 Python 环境Ctrl+Shift+P输入>python select Interpreter会列出系统所有python解释器,选择对应的解释器:安装code runner插件配置code runner运行代码方式:键盘快捷键 Ctrl+Alt+N原创 2021-01-26 19:10:18 · 2571 阅读 · 1 评论 -
正则表达式介绍及Python使用方法
正则表达式(Regular expression)是组成搜索模式的一组字符序列,是记录文本规则的代码,用来检查文本中是否包含指定模式的字符串,通过定义一个规则来匹配字符串。正则表达式广泛应用于在字符串查找和处理中,大多文本编辑器基本都支持正则表达式查找。本文将简要介绍正则表达式语法,然后介绍Python语言中正则表达式使用方法。原创 2021-01-05 07:22:11 · 1471 阅读 · 1 评论