【Python高级】
文章平均质量分 59
埃菲尔没有塔尖
热爱学习,热爱分享,欢迎交流。
展开
-
python celery beat实现定时任务
在Celery在python中的应用除了实现异步任务(async task)外也可以执行定时任务(beat。原创 2024-03-04 00:00:09 · 494 阅读 · 1 评论 -
python celery使用队列
最后只要发送任务即可,在redis中就可以看到专门指定的两个队列了。一个简单的celery + 队列就实现了。在celery的配置方法中有个参数叫。,是用来设置不同的任务 消费不同的。celery应用程序模块配置相关。发送邮件任务-调度器。发送短信任务-调度器。看下运行过程中的日志。原创 2024-02-20 23:04:11 · 491 阅读 · 0 评论 -
python 多线程+队列的简单应用
在实际处理需求的过程中,博主比较偏爱使用**多线程threading** + **队列queue**的方式 去开发代码。原创 2024-02-20 21:21:49 · 334 阅读 · 0 评论 -
python高性能调用js
做js逆向,一般是将js的加解密的源码抽出来然后用python的pyexecjs包来调用,但这样的话会有一部分性能丢失。3.在python程序中使用requests模块调用。2.创建一个服务模块,采用http方式调用该函数。转载于:微信公众号 爬虫黑科技。4.使用pm2守护node进程。这里推荐一种http调用方式。原创 2023-07-01 13:49:37 · 1141 阅读 · 0 评论 -
Tenacity——Exception Retry 从此无比简单
以爬虫开发为例,由于网页返回的源代码有各种不同的情况,因此捕获异常并重试是很常见的要求。下面这几段代码是我多年以前,在刚开始学习爬虫的时候,由于捕获异常并重试导致代码混乱化过程。从上面的例子中可以看到,对于异常的捕获和处理,一不小心就让整个代码变得很难看很难维护。在写代码的过程中,处理异常并重试是一个非常常见的需求。Tenacity是我见过的,最 Pythonic ,最优雅的第三方库。后来又发现,不能立刻重试,重试要有时间间隔,并且时间间隔逐次增大……进行重试,每次间隔5秒,重试三次,那就写成:。原创 2023-07-01 12:59:24 · 870 阅读 · 0 评论 -
python-ThreadPoolExecutor线程池和ProcessPoolExecutor进程池的使用
线程池的基类是模块中的Executor,Executor提供了两个子类,即和,其中用于创建线程池,而用于创建进程池。如果使用线程池/进程池来管理并发编程,那么只要将相应的task函数提交给线程池/进程池,剩下的事情就由线程池/进程池来搞定。原创 2022-10-10 20:37:29 · 3379 阅读 · 3 评论 -
python下celery的基本使用
Celery是由Python编写的简单,灵活,可靠的用来处理大量信息的分布式系统,它同时提供操作和维护分布式系统所需的工具。Celery专注于实时任务处理,支持任务调度。简单的说,它就是一个分布式队列的管理工具,用celery提供的接口快速实现并管理一个分布式的任务队列。有一点我们需要搞清楚,Celery本身并不是任务队列,它是一个分布式队列的管理工具,Celery封装好了操作常见任务队列的各种操作,比如说从监听某个任务队列并从该队列中拿到数据进行消费。原创 2022-09-29 22:44:32 · 8760 阅读 · 3 评论 -
python中kafka的安装和使用教程
Kafka是一个分布式流处理系统,流处理系统使它可以像消息队列一样publish(发布)或者subscribe(订阅)消息,分布式提供了容错性,并发处理消息的机制。kafka运行在集群上,集群包含一个或多个服务器。kafka把消息存在topic中,每一条消息包含键值(key),值(value)和时间戳(timestamp)。原创 2022-09-27 17:34:34 · 6413 阅读 · 0 评论 -
chrome进入控制台时自动进入断点模式的解决方法
困惑了有一会,记录一下简单粗暴,不知道为什么,去掉那个√就好了原创 2022-05-25 10:42:15 · 1274 阅读 · 1 评论 -
python-httpx 发送http2.0时代请求
在日常开发中,经常会发送各种各样的网络请求。Python中常用的网络请求库有requests、aiohttp、httpx等,httpx是基于Python3的新一代的网络请求库,它的功能很丰富,做个简答的介绍。httpx是Python新一代的网络请求库,它包含以下特点特点基于Python3的功能齐全的http请求模块既能发送同步请求,也能发送异步请求支持HTTP/1.1和HTTP/2能够直接向WSGI应用程序或者ASGI应用程序发送请求安装httpx需要Python3.6+(使用异步请求原创 2022-05-20 10:17:28 · 7047 阅读 · 0 评论 -
python 下载视频/文件 实时显示进度
文章转载于: https://blog.csdn.net/knighthood2001/article/details/120624571为了自己方便学习,所有做个简单的总结。先直接上代码:from contextlib import closingimport requests, osdef download_video(download_url, download_path): video_name = os.path.basename(download_path) with原创 2022-05-18 23:04:46 · 1451 阅读 · 0 评论 -
python实现 HmacSHA256加密算法
一般来说,sha256算法通常和base64算法一起搭配使用。废话不多说,直接上代码:from hashlib import sha256import hmac, base64def get_sha256(data, key): key = key.encode('utf-8') # sha256加密的key message = data.encode('utf-8') # 待sha256加密的内容 sign = base64.b64encode(hmac.n原创 2022-01-12 16:04:33 · 9097 阅读 · 0 评论 -
Python 日志模块Loguru的使用
Loguru 一个能彻底解放你的日志记录器。它即插即用,具备多种方式滚动日志、自动压缩日志文件、定时删除等功能。除此之外,多线程安全、高亮日志、日志告警等功能也不在话下。下面就给大家介绍一下这个强大工具的基本使用方法。Loguru 安装方式很简单,打开终端输入:pip install loguru即可完成安装。1.即开即用在Loguru中,如果你需要输出 debug 日志到终端,可以这么做:from loguru import loggerlogger.debug("That's原创 2022-01-12 11:03:11 · 2814 阅读 · 3 评论 -
Python2 常见问题
Python编程时遇到过一些问题,整理了以下内容,含解决办法。1、SyntaxError: Non-ASCII character ‘\xe4’ in file文件中出现了中文,且没有编码声明,Python2将默认以ASCII作为标准编码,而Python2支持的ASCII码无中文。解决方法:必须在文件中第一行声明文件编码# -*- coding: utf-8 -*-2、UnicodeEncodeError: ‘ascii’ codec can’t encode characters in .原创 2021-07-10 20:59:14 · 412 阅读 · 0 评论 -
python logging日志模块的使用
1.日志级别日志一共分成5个等级,从低到高分别是:DEBUG ,INFO, WARNING ,ERROR, CRITICAL。DEBUG:详细的信息,通常只出现在诊断问题上INFO:确认一切按预期运行WARNING:一个迹象表明,一些意想不到的事情发生了,或表明一些问题在不久的将来(例如。磁盘空间低”)。这个软件还能按预期工作。ERROR:更严重的问题,软件没能执行一些功能CRITICAL:一个严重的错误,这表明程序本身可能无法继续运行这5个等级,也分别对应5种打日志的方法: debug原创 2020-11-07 19:30:25 · 538 阅读 · 0 评论 -
Python 实例方法,类方法和静态方法的区别
在 Python 中,实例方法(instance method),类方法(class method)与静态方法(static method)经常容易混淆。本文通过代码例子来说明它们的区别。1.实例方法Python 的实例方法用得最多,也最常见。我们先来看 Python 的实例方法。class Kls(object): def __init__(self, data): self.data = data def printd(self): print(s原创 2020-11-07 18:55:26 · 1006 阅读 · 0 评论 -
python time,datetime当前时间,昨天时间,时间戳和字符串的转化
由于在使用经常会用到time 模块,所以把经常使用到方法记录下来。首先把所有需要用到的模块导入进来:import time, datetime1.当前时间-时间戳# 当前时间戳current_time = time.time()print("当前时间戳为:", current_time)当前时间戳为: 1602919668.5688092.当前时间,13位时间戳print(round(time.time()*1000)) #15946093883181602920442468原创 2020-10-17 16:03:43 · 2047 阅读 · 2 评论 -
pycharm debug 断点调试
记得自己学习的心得,为了自己以后调试方便些。1.操作步骤:1.1 添加断点直接在标记处点击鼠标左键即可。(删除断点只需再点击断点处即可)1.2 Debug下运行代码如图所示:1-3.按照所需调试进行代码调试2.Debug的调试方式如下所示:2.1.show execution point (F10)显示当前所有断点2.step over(F8)单步调试。若函数A内存在子函数a时,不会进入子函数a内执行单步调试,而是把子函数a当作一个整体,一步执行。3.step into(F7原创 2020-09-19 20:04:42 · 1662 阅读 · 0 评论 -
Python 多进程pool.map()方法的使用
在python中,只有多进程才可以充分利用CPU的资源,适合CPU计算型任务,其他的就不多说了。这里介绍一个 pool.map()方法,很实用!pool.map()先直接上代码:import timefrom multiprocessing.pool import Pooldef numsCheng(i): return i * 2if __name__ == '__main__': time1 = time.time() nums_list = [1, 2, 3,原创 2020-08-05 15:01:15 · 32269 阅读 · 9 评论 -
python 去除所有的中文 英文标点符号
去除英文标点符号python的string模块下的 punctuation 包含所有的英文标点符号,所以用replace()一下就可以去除。代码示例:import stringstri = 'today is friday, so happy..!!!'punctuation_string = string.punctuationprint("所有的英文标点符号:", punctua...原创 2020-04-08 15:46:45 · 31471 阅读 · 2 评论 -
python wav模块获取采样率, 采样点,声道,量化位数和时间
安装:pip install wave在wav 模块中 ,主要介绍一种方法:getparams(),该方法返回的结果如下:_wave_params(nchannels=1, sampwidth=2, framerate=48000, nframes=171698592, comptype='NONE', compname='not compressed')参数解释:nchannel...原创 2020-01-21 17:46:05 · 10143 阅读 · 6 评论 -
python查看文件的编码格式
安装:pip install chardet代码:import chardetfilePath = r"C:\Users\Lenovo\Desktop\G0001.TextGrid"with open(filePath, "rb") as f: content = f.read() result = chardet.detect(content) print(...原创 2020-01-20 18:01:14 · 686 阅读 · 0 评论 -
python对excel表格操作
在python中,对excel表格读数据和写数据,主要用到下面的模块:wlrd 读取excel表中的数据xlwt 创建一个全新的excel文件,然后对这个文件进行写入内容以及保存1.xlrd 模块读数据安装:pip install xlrd导入:import xlrd创建excel表格对象excel_object = xlrd.open_workbook(r"C:\Use...原创 2019-12-19 16:56:24 · 471 阅读 · 0 评论 -
Python 多进程向同一个文件写数据
1.遇到的问题:之前,处理数据的时候,因为考虑到Python多进程可以充分利用CPU核数,提高程序的效率。但是向同一个文件写入数据的时候,由于多进程是并发进行,操作系统中会不清楚到底要写入哪个数据到文件中,所以会出现资源竞争混乱,导致文件内容轮乱。多进程也有一些问题,比如,如果进程都需要写入同一个文件,那么就会出现多个进程争用资源的问题,如果不解决,那就会使文件的内容顺序杂乱。这就需要涉及到...原创 2019-12-19 10:46:58 · 18880 阅读 · 12 评论 -
python中英文翻译translate模块使用
1.说明:从一种语言到另一种语言的文本翻译在各种网站中越来越普遍。 帮助我们执行此操作的python包称为translate。可以通过以下方式安装此软件包。 它提供主要语言的翻译。官网链接:https://pypi.org/project/translate/2.代码:from translate import Translator# 英语翻译中文translator = Tran...原创 2019-12-18 18:22:44 · 16014 阅读 · 19 评论 -
python random模块的使用
1.random模块中的sample函数作用:random.sample(seq, k) 实现从序列或集合seq中随机选取k个独立的的元素参数:seq:元组、列表或字符串k:选取元素个数举例:代码:import randoma = [1, 2, 3, 4, 5, 6, 7, 8, 9]b = random.sample(a, 5)print(b)2. random模...原创 2019-12-18 17:57:42 · 505 阅读 · 0 评论 -
Python OS和shutil模块的常见方法
列出指定目录的文件os.listdir()路径拼接os.path.join()删除文件os.remove()重命名文件os.rename()取得当前工作目录os.getcwd()判断文件夹/文件是否存在os.path.exists()判断是否为目录os.path.isdir()判断是否为文件os.path.isfile()获取文件大小 (单位是字节)...原创 2019-12-15 12:42:33 · 173 阅读 · 0 评论 -
python中的线程threading.Thread()使用
1. 线程的概念:线程,有时被称为轻量级进程(Lightweight Process,LWP),是程序执行流的最小单元。一个标准的线程由线程ID,当前指令指针(PC),寄存器集合和堆栈组成。另外,线程是进程中的一个实体,是被系统独立调度和分派的基本单位,线程自己不拥有系统资源,只拥有一点儿在运行中必不可少的资源,但它可与同属一个进程的其它线程共享进程所拥有的全部资源。2. threading....原创 2019-12-15 12:34:50 · 5907 阅读 · 0 评论 -
Python进程multiprocessing. Process()的使用
1.进程概念进程是资源分配的最小单位,程序隔离的边界。CPU的时间片轮转,在不同的时间段切换执行不同的进程,但是切换进程是比较耗时的;就引来了轻量级进程,也就是所谓的线程,一个进程中包括多个线程(代码流,其实也就是进程中同时跑的多个方法体)程序:例如xxx.py这是程序,是一个静态的进程:一个程序运行起来后,代码+用到的资源 称之为进程,它是操作系统分配资源的基本单元。2.进程的状...原创 2019-12-15 12:03:02 · 2714 阅读 · 0 评论 -
Python进程池Pool的使用
1.进程池Pool需要创建的子进程数量不多时,可以直接利用multiprocessing中的Process动态成生多个进程,但如果是上百甚至上千个目标,手动的去创建进程的工作量巨大,此时就可以用到multiprocessing模块提供的Pool方法。初始化Pool时,可以指定一个最大进程数,当有新的请求提交到Pool中时,如果池还没有满,那么就会创建一个新的进程用来执行该请求;但如果池中的进...原创 2019-12-15 11:00:32 · 3735 阅读 · 0 评论 -
Python全角和半角之间相互转换
1.应用领域:全角和半角的转换通常用在自然语言处理过程中,由于全角和半角的不一致会导致信息抽取不一致,在使用语料训练语言模型会导致模型的效果不准确,所以需要统一。2.全角半角转换概述全角字符unicode编码范围从65281~65374 (对应的十六进制范围是: 0xFF01 ~ 0xFF5E)半角字符unicode编码范围从33~126 (对应的十六进制范围从 0x21~ 0x7E)...原创 2019-11-28 10:40:17 · 1592 阅读 · 0 评论 -
Python:langdetect和langid检测语言类型
需求问题:前几天,因为工作的需要,要求对爬取的语料进行语种识别,所以在网上查阅了一些资料。在这里跟大家介绍下两个语言检测工具langdetect和langid。1.langid模块在这里提供一下,官方文档。大家有兴趣的话,可以去研究下。https://github.com/saffsd/langid.py安装方法也很简单,直接下DOS 命令行输入下面命令:pip install lang...原创 2019-11-20 18:23:41 · 3037 阅读 · 3 评论 -
Python内层for循环continue和break出外层循环
遇到问题:昨天在写代码的时候,遇到一个问题。就是当内层的for循环满足条件的时候,如何结束本次内层循环 ,同时,跳过或者结束本次外层循环。后来,在网上就查阅了一些资料,自己整理了下。1.for…else… 搭配break 结束双重循环代码如下:for i in range(1, 5): for j in range(2, 7): print(i, j) ...原创 2019-11-20 09:58:18 · 8947 阅读 · 2 评论 -
python获取文件夹下所有文件的两种方式
需求:给你一个指定的文件夹路径,让你得到该路径下的所有文件,在这里我是用递归去实现的。直接上代码:import osdef list_dir(text_list,dir_path): dir_files = os.listdir(dir_path) # 得到该文件夹下所有的文件 for file in dir_files: file_path = os.p...原创 2019-11-12 09:50:16 · 5041 阅读 · 0 评论 -
python 在数字前面自动补0
1. 为了排版方便或者是输出文件命名整洁,通常需要给数字前面补0来做统一。 Python中有一个zfill函数用来给字符串前面补0,非常有用,这个zfill看起来也就是zero fill的缩写吧,看一下如何使用:代码示例:n = "345"s = n.zfill(6)print(s)运行结果:0003452.zfill也可以给负数补0:代码示例:n = '-123's =...转载 2019-11-12 09:41:22 · 7707 阅读 · 0 评论 -
Python文件的读写操作
1.文件的打开访问模式打开模式描述r以只读⽅式打开⽂件。⽂件的指针将会放在⽂件的开头。这是默认模式。w打开⼀个⽂件只⽤于写⼊。如果该⽂件已存在则将其覆盖。如果该⽂件不存在,创建新 ⽂件。a打开⼀个⽂件⽤于追加。如果该⽂件已存在,⽂件指针将会放在⽂件的结尾。也就是 说,新的内容将会被写⼊到已有内容之后。如果该⽂件不存在,创建新⽂件进⾏写⼊rb以⼆进制格...原创 2019-11-01 11:09:36 · 220 阅读 · 0 评论 -
python获取列表list里面元素的下标
在日常的开发过程中,我们常常需要获取某一组元素中的特定元素的下标。在Python中,通常有两种方法获取元素的下标。方法1:列表.index(target)其中,target就是你需要查找的特定元素。举例:target_list = [35, 67, 6, 77, 89, 98]print(target_list.index(89))输出结果:4缺点:这种方法只能得到第一个匹配...原创 2019-11-01 10:27:05 · 59818 阅读 · 3 评论 -
python正则匹配所有的中文,数字和英文
要求是这样的:给你一个字符串str,让你筛选出里面的中文,这里我是用正则实现的。直接上代码:import restring = '41f54哈哈哈哈3@¥…¥你是¥我的小可爱吗!@沙雕$'result = re.findall(u'[\u4e00-\u9fa5]',string)chinese = ''.join(result)print(chinese)运行结果:哈哈哈哈你...原创 2019-10-18 18:38:29 · 13372 阅读 · 0 评论 -
Python获取.wav音频的时长
要求是这样的:给你一个.wav的音频,要求获取这个音频的时长。这里需要用到两个模块,contextlib和 wave。直接上代码:import contextlibimport wavefile_path = r"Z:\projectm\822.wav"with contextlib.closing(wave.open(file_path, 'r')) as f: frames...原创 2019-10-18 18:32:00 · 7889 阅读 · 2 评论 -
Python TCP聊天器
注释:下面的逻辑分析思路来自李伟老师,感谢在python学习道路上提供的帮助。需求性分析:这次我们使用TCP的方式,编写的程序作为服务端接受消息,同时使用网络调试助手模拟客户端,网络调试助手输入对方的ip地址,输入要发送的信息,点击发送,这个时候客户端就能接受到消息 了。思路分析:1.socket创建一个套接字2.bind绑定ip和port3.listen使套接字变为可以被动链接...原创 2018-11-23 16:17:36 · 325 阅读 · 0 评论