
二、Python - 进阶
文章平均质量分 66
一些Python进阶知识
0思必得0
命由天定,福自己求!
展开
-
[Python进阶] Pyinstaller打包心得(减少打包空间占用、快捷打包、找不到资源等)
Pyinstaller打包心得(减少打包空间占用、快捷打包、找不到资源等)原创 2024-04-22 09:35:48 · 4414 阅读 · 0 评论 -
[Python进阶] Python操作word:win32com、python-docx
在Python中,我们可以使用win32com和python-docx库来自动化处理word文件。原创 2024-01-10 09:19:03 · 3855 阅读 · 0 评论 -
Python循环进度可视化
在Python程序开发时,经常会遇到循环处理的情况,如果循环次数比较多,耗时又比较长的话,通常就没办法得知循环到哪里了,在大循环中等待我想不是一件很好的事情,有时候等不急只能强制停止程序。通过上面的方法,可以设定每次循环后将输出起点调整到行首,由于后续的进度显示会覆盖掉前面的,所以从视觉效果上看就是看到进度一直在变动,从1%一直到100%。如果在循环时可以显示循环的进度,会让人比较安心,至少心里有数。下面介绍两种方法,可以在循环时,在终端显示循环的进度。覆盖终端中的输出以显示循环进度。原创 2023-04-19 22:50:15 · 6578 阅读 · 0 评论 -
[Python进阶] 屏蔽键鼠
在日常生活、工作、娱乐中,通过代码暂时屏蔽键鼠(键盘和鼠标)的功能,可以达到一些特定的需求。原创 2024-02-28 09:20:59 · 3794 阅读 · 6 评论 -
[Python进阶] 数据加密解密
在现实生活中,数据的加密和解密被广泛应用于各种场景,如电子商务、网上银行、政府机构和军事领域等。Python加密解密。数据的加密和解密是指通过使用特定的算法和密钥,将原始数据转换为不可读的形式(加密),然后再将其还原为原始数据(解密)的过程。:加密可以确保数据的机密性,即只有持有正确密钥的人才能解密和读取数据。而不对称加密指加密和解密使用不同的密钥,通常是一对密钥,称之为公钥(用来加密)和私钥(用来解密)。2、hash算法可以对很大的数据产生比较小的哈希值,而加密算法源数据很大,加密后的数据也会很大。原创 2024-01-31 09:54:30 · 2630 阅读 · 0 评论 -
Python中“is”和“==”的区别(避坑)
在Python编写代码时,经常会遇到需要判断2个对象是否相等的情况,这个时候一般就会想到使用`is`和`==`,`is`和`==`好像都可以用来判断对象是否相等,经常会傻傻分不清,但其实这其中还是有区别的。原创 2023-04-27 11:19:17 · 5228 阅读 · 0 评论 -
[Python进阶] 进程与线程
在Windows操作系统中,进程和线程都是操作系统所运行的程序运行的基本单元。进程是资源分配的基本单位,它拥有独立的地址空间和系统资源,是计算机中运行应用程序的实体。每个进程都有自己的内存空间和系统资源,并且只能通过系统分配的地址空间进行访问。当一个进程崩溃时,它对其它进程不会产生影响,因为每个进程都运行在自己的地址空间中。线程是CPU独立运行和独立调度的基本单位,是进程中的一段序列,能够完成进程中的一个功能。一个进程可以包含多个线程,而一个线程只能存在于一个进程中。原创 2024-01-24 09:52:55 · 3174 阅读 · 0 评论 -
[Python进阶] 数据处理:Pandas入门
Pandas 是 Python 语言的一个扩展程序库,用于数据分析。Pandas 是一个开放源码、BSD 许可的库,提供高性能、易于使用的数据结构和数据分析工具。Pandas 名字衍生自术语 "panel data"(面板数据)和 "Python data analysis"(Python 数据分析)。Pandas 一个强大的分析结构化数据的工具集,基础是 Numpy(提供高性能的矩阵运算)。原创 2024-02-05 11:29:23 · 3095 阅读 · 0 评论 -
[Python] 类的继承
通常子类可以直接调用父类中的方法,如果子类和父类同时都有__init__方法需要定义一些初始化的属性,那么在子类中直接调用__init__方法传入参数显然是不行的。在某些情况下,如果想要创建一个新的类,这个类除了要有旧类的所有属性和方法,还有一些其他的属性和方法,那么重新再去定义它显示是不明智的,这个时候可以通过继承来实现。在编程中,类的好处我们知道了,通过类我们可以源源不断的实例化出对象,这些对象用有相同的属性和方法,大大提高了程序代码的复用性。A_tuple可以是一个类也可以是包含多个类的tuple。原创 2023-06-29 16:37:31 · 4713 阅读 · 0 评论 -
[Python进阶] Python操作Excel文件:pandas
Pandas是Python中的一个开源库,用于数据分析和操作。它提供了高性能,易于使用的数据结构和数据分析工具,旨在使C语言级别的性能更容易地在Python中获得。Pandas包括许多高级数据结构,如Series,DataFrame和Panel,以及许多用于数据分析和操作的工具。高性能的数据结构:Pandas提供了高性能的数据结构,如Series和DataFrame,它们是专门为处理大型数据集而设计的。Series是一种一维数组,而DataFrame是一种二维表格数据结构,可以包含异构类型的数据列。原创 2024-01-08 09:00:52 · 4284 阅读 · 0 评论 -
[Python进阶] Python操作MySQL数据库:pymysql
phpstudy是一款非常有用的PHP开发工具,旨在帮助开发者更加便捷地进行PHP程序的开发与调试。它提供了一个友好的图形用户界面,使得用户能够方便地进行配置和管理本地的PHP开发环境。原创 2024-01-15 11:29:45 · 4403 阅读 · 0 评论 -
[Python进阶] Python自动收发邮件:smtplib、poplib
在Python中,我们可以使用内置的smtplib和poplib库,或者使用更高级的库,如yagmail,来自动化收发邮件。下面,我将提供一个使用smtplib和poplib的示例。注意:这些示例代码中的服务器地址、端口、邮箱地址和密码都需要你替换为你自己的信息。由于它们是Python的内置库,你无需通过pip进行安装。原创 2024-01-10 09:20:24 · 3229 阅读 · 0 评论 -
[Python进阶] 百万字符组成图片
相信大家应该在网上看到过这种图片,打开后没有什么不同,是一张比较正常的图片,但是一旦放大,会发现图片的所有像素其实是某些字符组成的。其实原理很简单,就是将源图片的所有像素替换成字符,然后再进行填充即可。1、由于是用字符作为子图去填充源图中的所有像素点,所以,源图不能太大,子图也不能太大,否则生成的目标图会很大。4、绘制的时间和目标图的大小有关,源图、子图像素越多,机器性能越差,绘制的时间越长。2、子图的宽和高建议要一致,否则目标图会变形失真。3、子图中的字符的字体最好选择粗体,效果会更好。原创 2024-02-07 10:26:39 · 2533 阅读 · 0 评论 -
[Python] 类的多态
最后,我们定义了一个函数animal_speak(),该函数接收一个Animal类的对象,并调用其speak()方法打印出动物的特定音效。当我们传入my_dog和my_cat对象作为参数时,animal_speak()函数调用的将是它们各自类的speak()方法,因此我们得到了不同的输出结果。在这个例子中,我们定义了一个Animal基类,它有一个speak()方法,但这个方法没有具体的实现。在Python中,多态指的是相同的操作可以作用于不同类型的对象,并且会产生不同的结果。这就是多态的一个例子。原创 2023-07-01 14:18:02 · 4613 阅读 · 0 评论 -
[Python进阶] 正则表达式的验证
正则表达式的语法很令人头疼,即使对经常使用它的人来说也是如此。由于难于读写,容易出错,所以找一种工具对正则表达式进行测试是很有必要的。原创 2024-01-17 09:06:10 · 3037 阅读 · 0 评论 -
Python进阶语法
它相当于一个简化的if-else语句,但是可以写在一行里。表达式1 if (布尔)表达式2 else 表达式3。一行代码快速交换两个变量,无需创建临时变量。为真,则整个三元表达式的结果为。上面的三元表达式中,如果。原创 2023-03-30 13:45:08 · 5054 阅读 · 0 评论 -
[Python进阶] Python处理txt文件:open
在Python中,通过open函数可以打开一个文件,创建一个file对象,然后对该对象进行读写。原创 2024-01-04 09:49:37 · 4374 阅读 · 0 评论 -
[Python进阶] Pyinstaller打包程序时为程序添加图标
图标是一种视觉语言,能够提高应用程序的可识别性,使其在众多应用程序中更容易被用户找到和识别。原创 2023-09-26 09:16:07 · 10223 阅读 · 0 评论 -
[Python进阶] 操纵鼠标:Pynput
Pynput库允许模拟用户的键盘按键和鼠标点击动作。你可以编写代码来模拟按下特定的键、释放键、连续按下某个键、移动鼠标、点击或释放鼠标等。Pynput库是一个Python第三方库,用于控制和监视用户输入设备(如键盘和鼠标)。:Pynput库提供了用于监测键盘和鼠标事件的功能。你可以编写代码来监听用户按下或释放的键、滚轮滚动、鼠标移动等等。button:鼠标按键,左键:1,中键:2,右键:3。将鼠标移动到当前位置偏移dx,dy的位置上。按下鼠标相应的按键指定次数。button:鼠标的按键。原创 2023-10-16 15:01:45 · 4005 阅读 · 0 评论 -
[Python进阶] Pyinstaller打包问题
例如在32位版本的打包中,可能会出现scipy模块相关的dll文件无法找到。这时就需要在打包的spec文件中指定动态链接库路径,使其关联到打包后的路径中。Pyinstaller在进行打包时,会解析打包的Python文件,自动寻找py源文件的依赖模块。Pyinstaller打包后的路径使用中文没有问题,不过为了减少打包时候出错的可能,尽量将打包使用的资源文件和代码文件路径设置为英文。1、使用CMD,通过CD命令进入到主程序所在的文件夹,然后运行:打包.exe命令,这样报错的内容就会显示在当前CMD窗口中了。原创 2023-10-08 13:44:56 · 6372 阅读 · 0 评论 -
[Python进阶] 哈希
在计算机技术中,哈希是一种将任意长度的输入(如数据、文件、字符串等)通过散列函数变换成固定长度的输出,这个输出就是哈希值。这个过程是不可逆的,也就是说,无法从哈希值还原出原始的输入。有好几种哈希函数,对应不同的算法,常见有的 MD5、SHA1、SHA224、SHA256、 SHA384、SHA512等固定长度输出:无论输入数据的长度如何,哈希函数都会生成一个固定长度的输出,这个输出通常是一个相对较小的字符串,由数字和字母组成。单向性。原创 2024-01-31 09:53:19 · 2682 阅读 · 0 评论 -
[Python] 冻结字典和集合
一般情况下,创建好字典和集合之后可以对其中的元素进行添加或删除。但是有时,我们出于某种原因需要将字典和集合进行冻结,不允许对其中的元素进行添加或删除。这个时候,我们就可以使用MappingProxyType函数和frozenset函数直接创建或冻结字典或集合。可以看到,冻结之后的字典或集合就不能添加元素进去,也不能删除元素了。我们看到,冻结后的集合变得可哈希了,但是冻结的字典还是不可哈希。原创 2023-05-04 10:14:30 · 5135 阅读 · 0 评论 -
[Python进阶] 数据处理:Numpy入门
NumPy是Python编程语言的一个扩展程序库,支持大量的维度数组与矩阵运算,此外也针对数组运算提供大量的数学函数库。NumPy的名称源自数值包装(Numerical Package),其包含许多针对数值运算的函数,包含数学、逻辑、数组形状变换等。多维数组对象(ndarray):这是NumPy的核心内容,提供了强大的多维数组对象。这个对象能够存储不同类型的数据(整数、浮点数、字符串等),并且可以灵活地调整大小。数学函数库:NumPy提供了大量的数学函数,可以对数组进行各种计算。原创 2024-02-05 11:28:01 · 2930 阅读 · 0 评论 -
[Python进阶] WindowsAPI:pywin32
pywin32是一个第三方模块库,主要的作用是方便Python开发者快速调用windows API的一个模块库。同时pywin32也是一些windows上第三方Python模块库的前提,例如wmi,如果没有安装pywin32是无法正常使用wmi这个三方模块库的。原创 2023-10-30 09:42:46 · 4033 阅读 · 0 评论 -
[Python进阶] 消息框、弹窗:批处理消息框\msg
需要注意的是,MSG命令需要在管理员权限下才能使用,否则会提示权限不足。另外,在Windows系统中,需要先开启Messenger服务才能使用MSG命令进行消息发送。批处理中的MSG命令是一个用于向用户发送消息的命令。:识别这样一个文件,该文件含有将所发消息,发送到的用户名、会话名和会话标识号的列表。:会话 ID,与 sessionname类似,用于标识要接收消息的会话。:标识指定的用户名,用于向特定用户发送消息。:会话名称,用于标识要接收消息的会话。:等待用户的响应,跟 /V 一起有用。原创 2023-12-12 11:24:02 · 3573 阅读 · 0 评论 -
[Python] 类装饰器
在Python中,是一个装饰器(decorator),用于定义抽象方法(abstract method)。抽象方法是在父类中声明但没有具体实现的方法。子类必须实现该抽象方法才能被实例化。使用装饰器,可以将方法标记为抽象方法。抽象方法在父类中声明时没有提供具体的实现,只有方法名和参数列表。而子类必须提供具体实现以满足父类中的抽象方法要求。以下是一个示例,展示如何使用。原创 2023-07-11 14:03:40 · 6596 阅读 · 0 评论 -
[Python进阶] Pyinstaller减少打包后程序大小
在程序打包过程中,UPX可以作为一个独立的压缩工具,用于压缩生成的可执行文件。Pyinstaller在打包时,常常会把无关的模块打包进来(原因是我们代码中使用的库可能有导入这些无关模块,而这些无关的模块又有可能导入其他无关模块)。由于打包后的程序经常要发送给他人使用,所以对于打包后的程序大小还是比较重要的。有时候,明明代码不多,但是打包后的程序非常大,这个就比较郁闷了。提示:如果可以的话,在打包时创建一个比较干净的Python环境,这样在打包时,那些用不上的库就不会被打包进来了。原创 2023-10-06 08:17:01 · 5840 阅读 · 0 评论 -
[Python进阶] 元类metaclass(type类)及object类
元类type规定了object这个所有类的基类应该长什么样子,按照元类type的模子产生的实例object自然也就成了一个类。而’help(type)‘的执行结果第一行是’class type(object)’,说明type继承object,它虽然是类的类,但‘类’这个身份也恰恰让它不得不符合类的基本形式。使用元类,可以控制如何创建一个类。object类是一个非常重要的类,它是所有类的基类。在一般的类中,是只会运行__new__()方法的,除非没有__new__()方法,则会运行__init__()方法。原创 2023-07-26 09:17:29 · 4164 阅读 · 0 评论 -
[Python进阶] 正则表达式介绍
正则表达式是对字符串操作的一种逻辑公式,就是用事先定义好的一些特定字符、及这些特定字符的组合,组成一个`规则字符串`,这个`规则字符串`用来表达对字符串的一种过滤逻辑。原创 2024-01-17 09:04:30 · 3559 阅读 · 0 评论 -
[Python进阶] 混合编程
所谓的混合编程就是指在一个大型项目中,因为要涉及到多个方面,单独使用某一种语言进行开发已经不能满足要求,可能在某一个模块中,需要用A语言编写一部分,而用B语言编写另外的部分。像这种使用两种或两种以上的程序设计语言来开发应用程序的过程就称为混合编程。原创 2024-02-27 09:29:22 · 3318 阅读 · 0 评论 -
[Python进阶] 定制类:比较篇
如果判断x < y,在x中没有找到小于方法,就会去找y中的大于方法,这样也能进行判断。如果定义了__eq__方法,那么这个默认的__hash__方法就会被删除掉。原因是,在Python中,如果两个对象相等,那么这两个对象的hash值也必须相等。在__eq__和__ne__方法中,都需要提供另一个需要比较的对象:other,这是因为这2个方法都是用来进行二元比较的。在Python中,如果自定义的类中没有写比较逻辑的时候,默认用is进行比较。如果定义了不等于方法,那么在判断不等于时,只会调用不等于方法。原创 2023-08-07 10:39:09 · 4452 阅读 · 0 评论 -
[Python进阶] 让错误尽早的暴露出来
在Python编程中,让错误尽早地暴露出来是一种良好的实践原创 2024-02-21 09:26:25 · 2340 阅读 · 0 评论 -
[Python进阶] 使用批处理文件快速打包
在这一章节中,我们来介绍通过批处理快速打包。对于某些程序打包,有可能每次打包的命令特别长,手动打包起来不是很方便。所以,这里将通过批处理的方式,将打包方式简化,让我们每次打包都更加轻松方便。使用方法:将需要打包的spec文件手动拖到上面那个批处理文件上面即可。使用方法:将需要生成spec文件的py文件手动拖到上面那个批处理文件上面即可。之后,每次重新打包时,如果不需要修改spec,则只需要重复第3步即可。echo. & echo 打包spec文件成功!echo. & echo 开始打包spec文件。原创 2023-10-08 10:55:13 · 3498 阅读 · 0 评论 -
[Python] 运行其他程序、命令和文件
还有一种方法是使用CreateProcess函数运行其他程序,它可以创建一个运行相应程序的进程,并返回进程句柄、线程句柄、进程ID以及线程ID。使用os.system()函数可以执行一个系统命令,并返回一个退出码。还有一种方法是使用os.popen()函数运行其他程序,它可以执行一个系统命令,并返回一个文件对象,可以读取或写入该对象。还有一种方法是使用subprocess模块运行其他程序,它可以创建一个子进程,并与之交互。args : 要向程序传递的参数,如果打开的是文件则为空字符串。原创 2023-05-30 16:48:39 · 7348 阅读 · 0 评论 -
[Python] 类的访问限制
然后,我们定义了一个公共方法 drive(),它可以在类的外部访问,并且使用getter和setter方法来管理变量 __max_speed 的值。举个例子,如果某个类中有个属性是用来存放年龄的,而有个方法需要用到这个年龄属性,并且是将这个年龄作为了除数,如果不小心设置或者输入年龄为0,那么就会导致程序出错。开头,则代表这个属性是私有属性,正常情况下是不可以在外部直接调用或修改该属性的。编程中介绍了类、对象的属性,按照属性的访问程度可以分为一般属性和私有属性。通常,在类、对象中,如果一个属性名以。原创 2023-06-25 11:14:44 · 4959 阅读 · 0 评论 -
[Python进阶] 操纵键盘:Pynput
Pynput库是一个Python第三方库,用于控制和监视用户输入设备(如键盘和鼠标)。使用Pynput库可以实现以下功能:`控制键盘和鼠标`:Pynput库允许模拟用户的键盘按键和鼠标点击动作。你可以编写代码来模拟按下特定的键、释放键、连续按下某个键、移动鼠标、点击或释放鼠标等。`监测键盘和鼠标事件`:Pynput库提供了用于监测键盘和鼠标事件的功能。你可以编写代码来监听用户按下或释放的键、滚轮滚动、鼠标移动等等。原创 2023-10-17 09:19:47 · 4663 阅读 · 0 评论 -
[Python]连接列表,将多个列表连接起来
使用 itertools.chain() 函数可以将可迭代对象(在这里指的是列表)串联起来,组成一个更大的可迭代对象。可迭代对象章节中讲到了解包,在函数中也可以通过解包的方式将可迭代对象中的元素全部取出作为参数传入函数中。如果希望得到一个有序的列表,可以使用 heapq.merge,因为它采用堆排序,效率高。注意:heapq.merge 除了合并多个列表外,它还会将合并后的最终的列表进行排序。这是列表自带的一个方法,通过该方法可以实现列表的原地更新。使用 + 对多个列表进行相加。原创 2023-05-10 14:03:27 · 6776 阅读 · 0 评论 -
[Python进阶] 正则表达式常见语法
正则表达式是对字符串操作的一种逻辑公式,就是用事先定义好的一些特定字符、及这些特定字符的组合,组成一个`规则字符串`,这个`规则字符串`用来表达对字符串的一种过滤逻辑。原创 2024-01-22 09:54:30 · 4214 阅读 · 0 评论 -
[Python进阶] 函数参数接收及判断(避坑)
在Python中,我们经常会自定义函数,并且有些函数会带有参数。原创 2024-02-21 09:24:18 · 3058 阅读 · 0 评论 -
[Python进阶] 使用__import__函数动态导入模块
在Python中,__import__是一个内置函数,用于动态导入模块。它的语法如下:__import__(name, globals=None, locals=None, fromlist=(), level=0)其中,name是要导入的模块名称,globals和locals是可选的命名空间字典,fromlist是可选的导入对象列表,level是可选的相对导入级别。原创 2024-02-15 13:25:38 · 3048 阅读 · 0 评论