python高级编程
文章平均质量分 56
辉辉咯
技术才是硬实力
展开
-
python微信机器人pc端
相信很多玩python的都知道,以前有个第三方库可以操作微信,实现自动回复等等功能,其原理是用https进行通信的, 但是现在大部分微信都不能登录网页版了,很多好玩的项目都受到了影响。因此,我来了。通过截取电脑版微信的消息可以做到功能更全面的效果,项目地址:https://github.com/huihuilo/pchatpchat微信pc端python代码操控(欢迎提出问题,作者尽最大努力改进)先点个赞吧背景很多系统有监控群聊消息的需求 大部分微信都登录不了网页版,python操纵原创 2020-11-20 18:30:42 · 3781 阅读 · 4 评论 -
[python] 讲讲上下文管理器
什么是上下文管理器简单来说,上下文管理器的目的就是规定对象的使用范围,如果超出范围就采取相应“处理”;比如:f = open('filename.txt')data = f.read()f.close()打开一个文件,读取文件内容,关闭文件。正常的业务中,这样写是不够的,因为在操作资源的时候有可能出现错误,为了加强代码健壮性,需要经常改为:try: f...原创 2020-03-11 15:05:02 · 243 阅读 · 0 评论 -
用heapq模块实现按优先级排序的优先级队列
需求:实现一个按优先级排序的队列,能够push和pop数据 在队列上每次pop都是返回优先级最高的元素 如果优先级相同,按它们最初被加入时的顺序返回 如果优先级发生改变,你该如何将其移至新的位置?使用标准库heapq来一步步的实现。heapq模块提供了堆排序算法的实现。注意这里指的是堆排序算法的实现而不是一个数据结构。有关heapq模块的详细介绍可以查看官方文档https://...原创 2020-02-07 18:12:44 · 874 阅读 · 0 评论 -
python多线程中的信息隔离(线程隔离)
什么是 信息隔离?比如说,咱有两个线程,线程A里的变量,和线程B里的变量值不能共享。这就是 信息隔离 。你可能要说,那变量名取不一样不就好啦?是的,如果所有的线程都不是由一个class实例化出来的同一个对象,确实是可以。这个问题我们暂且挂着,后面我再说明。那么,如何实现 信息隔离 呢?在Python中,其提供了 threading.local这个类,可以很方便的控制变量的隔离,即使是同一个变量,在...原创 2018-08-17 00:18:52 · 2055 阅读 · 0 评论 -
python类中的__dict__
直接上代码:class Person(object): name = 'python' age = 18 def __init_...原创 2018-08-20 00:02:47 · 2095 阅读 · 2 评论 -
python类中@property的讲解与使用
@property可以把一个实例方法变成其同名属性,以支持.号访问,它亦可标记设置限制,加以规范,如下代码:class Animal(object): def __init__(self, name, age): self._name = name self._age = age self._color = 'Black' @...转载 2018-08-20 00:16:20 · 554 阅读 · 0 评论 -
python实用技巧:werkzeug.utils 中的findmodules,importstring
find_modules, import_string这两个函数包含在 werkzeug.utils工具包中。 findmodules(importpath, include_packages=False, recursive=False)找到一个包下面的所有模块,在flask中这对于自动导入所有蓝图模块是非常有用的参数import_path:包路径 include_pack...原创 2018-08-22 23:58:19 · 1204 阅读 · 0 评论 -
[linux+python]获取mp3音频的时长
今天接到一个需求:获取合成音频的时长,提供给前端使用,便于实现音频播放进度的功能。心想,在python看来,这都不是事,python的第三方库那么丰富,肯定有python库可以实现这个需求的啦,于是上网一搜,真的有很多。但是,往往编程这一行,不是掉坑里,就是在掉坑的路上。最后选择了libroso库,使用到的接口很简单import librosatime=librosa....原创 2019-08-15 00:03:02 · 2113 阅读 · 0 评论 -
[python]提取PPT中的文字(包括图片中的文字)
python是一门很强大的语言,因为有着丰富的第三方库,所以可以说Python是无所不能的。很多人都知道,Python可以操作Excel,PDF·还有PPT,这篇文章就围绕Python提取PPT中的文字来写,包括提取PPT中的艺术字,图片中的文字。因为实现环境是linux,所以无法用win32com来实现这个需求,使用extract库也可以提取PDF,PPT等文件中的文字,但这里不用ext...原创 2019-08-20 23:42:14 · 7376 阅读 · 0 评论 -
[python]用requests请求接口报LineTooLong的错误
今天用requests库来请求接口合成公众号文章的音频时,一直合成失败,查看日志,报的是同样的错误:Traceback (most recent call last): File "/home/rhys/.virtualenvs/tools-backend/lib/python3.6/site-packages/urllib3/connectionpool.py", line 600, ...原创 2019-08-22 23:52:31 · 2589 阅读 · 0 评论 -
python解包
解包在英文里叫做 Unpacking,Python 中的解包是自动完成的,例如:>>> a, b, c = [1,2,3]>>> a1>>> b2>>> c3除了列表对象可以解包之外,任何可迭代对象都支持解包,可迭代对象包括元组、字典、集合、字符串、生成器等实现了__next__方法的一切对象。元组解...原创 2018-08-13 22:59:20 · 656 阅读 · 1 评论 -
python高级语法:with的用法
1.With语句是什么?有一些任务,可能事先需要设置,事后做清理工作。对于这种场景,Python的with语句提供了一种非常方便的处理方式。一个很好的例子是文件处理,你需要获取一个文件句柄,从文件中读取数据,然后关闭文件句柄。如果不用with语句,代码如下:file = open("/tmp/foo.txt")data = file.read()file.close()这里有...转载 2018-08-15 23:58:10 · 558 阅读 · 0 评论 -
python中的进制、位运算
进制间的转换编程用十进制,十进制转换为二进制、八进制、十六进制In [135]: bin(23)Out[135]: '0b10111'In [136]: oct(23)Out[136]: '0o27'In [137]: hex(23)Out[137]: '0x17'也可以直接反向获取十进制In [146]: 0b10111Out[146]: 23In [147]: 0o27O...原创 2018-05-08 20:49:13 · 4270 阅读 · 2 评论 -
python生成器
通过列表生成式,我们可以直接创建一个列表。但是,受到内存限制,列表容量肯定是有限的。而且,创建一个包含100万个元素的列表,不仅占用很大的存储空间,如果我们仅仅需要访问前面几个元素,那后面绝大多数元素占用的空间都白白浪费了。所以,如果列表元素可以按照某种算法推算出来,那我们是否可以在循环的过程中不断推算出后续的元素呢?这样就不必创建完整的list,从而节省大量的空间。# 在Python中,这种一边...原创 2018-05-09 11:15:36 · 146 阅读 · 0 评论 -
python迭代器
迭代器迭代是访问集合元素的一种方式。迭代器是一个可以记住遍历的位置的对象。迭代器对象从集合的第一个元素开始访问,直到所有的元素被访问完结束。迭代器只能往前不会后退。 可迭代对象以直接作用于 for 循环的数据类型有以下几种:一类是集合数据类型,如 list 、 tuple 、 dict 、 set 、 str 等;一类是 generator ,包括生成器和带 yield 的generator fu...原创 2018-05-09 14:04:47 · 121 阅读 · 0 评论 -
python闭包
什么是闭包# 什么是闭包:在函数内部再定义一个函数,并且这个函数用到了外边函数的变量,那么将这个函数以及用到的一些变量称之为闭包def FunctionOut(a, b): # 函数内部再定义一个函数 def FunctionIn(x): # 这个函数用到了外边函数的变量 print(a * x + b) # 返回内部函数的引用 ...原创 2018-05-09 15:28:36 · 264 阅读 · 0 评论 -
python装饰器
装饰器装饰器是程序开发中经常会用到的一个功能,用好了装饰器,开发效率如虎添翼,所以这也是Python面试中必问的问题,但对于好多初次接触这个知识的人来讲,这个功能有点绕,自学时直接绕过去了,然后面试问到了就挂了,因为装饰器是程序开发的基础知识,这个都不会,别跟人家说你会Python。先上代码:def makeItalic(func): '''闭包''' print('...原创 2018-05-09 19:58:05 · 142 阅读 · 0 评论 -
python动态添加属性和方法、__slots__的作用
python是动态语言1. 动态语言的定义动态编程语言 是 高级程序设计语言 的一个类别,在计算机科学领域已被广泛应用。它是一类 在运行时可以改变其结构的语言 :例如新的函数、对象、甚至代码可以被引进,已有的函数可以被删除或是其他结构上的变化。动态语言目前非常具有活力。例如JavaScript便是一个动态语言,除此之外如 PHP 、 Ruby 、 Python 等也都属于动态语言,而 C ...原创 2018-05-10 13:00:42 · 643 阅读 · 0 评论 -
【拓展】 python3中类的重点与难点:类继承中的私有属性和私有方法
私有属性、方法——Python并没有真正的私有化支持,但可用下划线得到伪私有尽量避免定义以下划线开头的变量 (1)xxx 公有变量(2)_xxx "单下划线 " 开始的成员变量叫做保护变量,意思是只有类对象(即类实例)和子类对象自己能访问到这些变量,需通过类提供的接口进行访问;不能用'from module import *'导入 (3)__xxx 类中的私有变量/方法名...原创 2018-05-04 18:21:30 · 793 阅读 · 1 评论 -
python属性property
1. 私有属性添加getter和setter方法通过公有方法获取私有属性class Property(object): '''有关property的用法''' def __init__(self): # 私有属性 self.__money = 100 def getMoney(self): '''通过公有方法获取私有属性''...原创 2018-05-08 19:17:50 · 130 阅读 · 0 评论 -
python魔法方法:__call__ 、__del__
一个对象通过提供__call__(slef, [,*args [,**kwargs]])方法可以模拟函数的行为,如果一个对象提供了该方法,就可以像函数一样使用它__del__方法会在删除对象的时候调用,可以在该方法内进行IO读写的关闭,因为python有垃圾回收机制,会自动删除对象,回收内存。比如数据库的关闭,文件的关闭,锁的关闭都可以在__del__方法里面实现。class Test(...原创 2018-08-12 23:55:02 · 300 阅读 · 0 评论 -
python中==、is的区别和深拷贝、浅拷贝的区别
1. == 与 is 的区别:In [9]: a = [100,200,300]In [10]: b = [100,200,300]In [11]: a is bOut[11]: FalseIn [12]: a == bOut[12]: Trueis 是比较两个引用(地址)是否指向了同一个对象(引用比较)。== 是比较两个对象是否相等,值相等的两个对象内存地址不一定相等In [1...原创 2018-05-08 20:33:51 · 238 阅读 · 1 评论