python
水星灭绝
meiyou
展开
-
python3常用命令
cd到python的pip路径下/cygdrive/c/Program Files/Python37/Scripts执行安装命令pip install requests原创 2019-09-27 10:32:15 · 2995 阅读 · 0 评论 -
读写excel文件
qichu_qimo.py# coding=utf-8'''pip install openpyxl -i http://pypi.douban.com/simple/ --trusted-host pypi.douban.com'''import openpyxlimport osimport shutilgConfigFile = '要显示的标题配置文件.txt'def getCell(sh, row, column): cell = sh.cell(row=row,原创 2021-08-08 23:01:07 · 217 阅读 · 0 评论 -
文件批量改名
# coding=utf-8import osfrom shutil import copyfiledef dealWith(): DST_PREFIX = '改名后' root = os.getcwd() dstDir = os.path.sep.join((root, DST_PREFIX)) suffixArray = ['.xlsx', '.csv'] if not os.path.exists(dstDir): os.maked.原创 2021-08-08 15:17:07 · 158 阅读 · 0 评论 -
CSV转XSXS
# coding=utf-8import pandas as pdimport os'''csv转xlsx格式pip install pandas -i http://pypi.douban.com/simple/ --trusted-host pypi.douban.com'''def dealWith(): DST_FOLDER = 'CSV转XSX后' root = os.getcwd() DST_PARENT_PATH = os.path.sep.join.原创 2021-08-08 15:16:04 · 180 阅读 · 0 评论 -
python中asyncio与多线程结合
multithreading+asyncio总结第一步:定义需要异步执行的一系列操作,及一系列协程函数;第二步:在主线程中定义一个新的线程,然后在新线程中产生一个新的事件循环;第三步:在主线程中,通过asyncio.run_coroutine_threadsafe(coroutine,loop)这个方法,将一系列异步方法注册到新线程的loop里面去,这样就是新线程负责事件循环的执行。...原创 2021-06-09 15:17:46 · 4016 阅读 · 2 评论 -
Python中is和==的区别
参考:https://www.cnblogs.com/CheeseZH/p/5260560.html转载 2021-06-06 11:20:37 · 782 阅读 · 0 评论 -
python中列表前面加*
类似与js中的展开符号...列表前面加星号作用是将列表中所有元素解开成独立的参数,传入函数,参数数量等于len(data)字典前面加两个星号,是将字典解开成独立的元素作为形参。原创 2021-06-06 11:07:32 · 1350 阅读 · 0 评论 -
python测试一下threading与threading.join
Python多线程与多进程中join()方法的效果是相同的。下面仅以多线程为例:首先需要明确几个概念:知识点一:当一个进程启动之后,会默认产生一个主线程,因为线程是程序执行流的最小单元,当设置多线程时,主线程会创建多个子线程,在python中,默认情况下(其实就是setDaemon(False)),主线程执行完自己的任务以后,就退出了,此时子线程会继续执行自己的任务,直到自己的任务结束,例子见下面一。知识点二:当我们使用setDaemon(True)方法,设置子线程为守护线程时,主线程一原创 2021-06-06 09:00:00 · 169 阅读 · 0 评论 -
python中list、array、set、tuple转换
list、array、set、tuple转换方式: list转array a1 = np.array(l1) array转list l1 = a1.tolist() list转set s1 = set(l1) set转list l1 = list(s1) list转tuple t1 = tuple(l1) tupel转list l1 = list(t1) array转set ...原创 2021-06-05 16:54:33 · 1111 阅读 · 0 评论 -
Python中threading的join和setDaemon的区别及用法[例子]
1、join ()方法:主线程A中,创建了子线程B,并且在主线程A中调用了B.join(),那么,主线程A会在调用的地方等待,直到子线程B完成操作后,才可以接着往下执行,那么在调用这个线程时可以使用被调用线程的join方法。 原型:join([timeout]) 里面的参数时可选的,代表线程运行的最大时间,即如果超过这个时间,不管这个此线程有没有执行完毕都会被回收,然后主线程或函数都会接着执行的。 ...原创 2021-06-05 16:47:54 · 99 阅读 · 0 评论 -
买阿里云
腾讯云99元/年的到期了。看到阿里云个人版有87元/年的版本,买了。支付宝扫描登陆控制台选“云服务器ESC"选”实例“——>”远程连接”——“更多”——>“密码”——>“重置实例密码”设置登陆密码打开WINDOWS远程桌面——>点击“显示选项”输入云公网地址,用户名Administrator,点击连接输入Administrator对应的密码,就是上面自己重置的密码远程连接成功然后就可以布置自己的服务器了。...原创 2021-05-23 19:26:10 · 156 阅读 · 1 评论 -
python中asyncio和run_in_executor混合
run_in_executor开了新线程后台处理耗时长的任务。这时候其它协程继续运行。例如run_in_executor开了新线程去处理requests下载任务。 callFunc = functools.partial(requests.get, url=murl, timeout=10*60) result = await loop.run_in_executor(None, callFunc) #开了新线程处理下载,挂着等结果。其它定时器任务继续在老线程里跑 l.原创 2021-05-23 12:26:49 · 2284 阅读 · 0 评论 -
Linux编程之select
写了python脚本测试,发现正常的selectors、socketserver方式的服务器,在WINDOS下最多同时连接512个客户端,服务器下据说最多同时连接1024个客户端。想连接更多客户端只能采用gevet协程模式。原理是操作系统底层就支持这么多。以select写的聊天服务器为例:select服务器:select_server.py代码:# coding=utf-8import selectimport socketimport threadingfrom logic原创 2021-05-22 19:33:40 · 176 阅读 · 0 评论 -
python中base64编码解码
编码e = base64.b64encode('you'.encode(encoding='utf-8'))print(e)结果:b'eW91'解码:d=base64.b64decode('eW91')print(d)结果:b'you'原创 2021-05-20 00:52:46 · 171 阅读 · 0 评论 -
python 截取指定mp4片段
# coding=utf-8import osimport subprocessimport cv2import mathimport shutilclass FileCheck(): def get_mp4_length(self, file_path): cap = cv2.VideoCapture(file_path) if cap.isOpened(): # 当成功打开视频时cap.isOpened()返回True,否则返回False.原创 2021-05-08 16:50:36 · 724 阅读 · 0 评论 -
python将docx文件转换成pdf文件
安装win32com对应的控件$ pip install pywin32 -i http://pypi.douban.com/simple/ --trusted-host pypi.douban.com转换代码# encoding=utf-8import osimport tracebackimport win32comfrom win32com.client import constantsdef transfer(): root = os.getcwd()..原创 2021-04-25 15:08:48 · 1492 阅读 · 0 评论 -
python下载图片
用python下载图片import requestsimport functoolsimport osimport chardetimport threadingimport asynciofrom concurrent.futures import ThreadPoolExecutorfrom html.parser import HTMLParserfrom enum import EnumgPool = ThreadPoolExecutor(30)gLock = threa原创 2021-04-08 10:16:00 · 1300 阅读 · 0 评论 -
python使用run_in_executor线程池结合requests.get函数下载,使用functools.partial偏函数赋值
functools.partial用来冻结函数的参数,类似js中的 function.bind函数绑定例子:# coding=utf-8import functoolsdef deal(x, y, z): print("x = {}, y = {}, z = {}".format(x, y, z))def callFunc(): call = functools.partial(deal, x=8, y=9, z="hellkew") call()if __n原创 2020-12-25 16:29:33 · 1123 阅读 · 6 评论 -
python对mp3与m4a批量改名
# coding=utf-8import sysimport osimport eyed3import mutagenfrom mutagen.id3 import ID3, TIT2from mutagen.easyid3 import EasyID3from mutagen.mp4 import MP4gSuffix = [".m4a", ".mp3"]'''description: 使用mutagen修改歌曲名,挺好用param {type} return {type} v.原创 2020-11-24 10:57:41 · 538 阅读 · 0 评论 -
python协程下载
# coding=utf-8import requestsimport osimport sysimport chardetimport asyncioimport threadingimport urllibfrom queue import Queuefrom concurrent.futures import ThreadPoolExecutorfrom enum import Enumfrom html.parser import HTMLParsergBook2Url =.原创 2020-11-24 10:00:43 · 451 阅读 · 0 评论 -
python下载网页解析失败
python下载网页后解码内容失败Exception has occurred: UnicodeDecodeError'gb2312' codec can't decode byte 0x9f in position 7976: illegal multibyte sequence解决方式,碰到gb2312则当成gb18030来解码# coding=utf-8import requestsimport osimport chardetif __name__ == "__main_原创 2020-11-23 10:14:24 · 225 阅读 · 0 评论 -
python协程多线程HTMLParser下载mp3
使用HTMLParser解析html网页,顺便协程+多线程下载mp3文件# coding=utf-8import requestsimport osimport chardetimport asyncioimport threadingfrom concurrent.futures import ThreadPoolExecutorfrom enum import Enumfrom html.parser import HTMLParsergPool = ThreadPoolExe原创 2020-11-22 19:05:51 · 176 阅读 · 0 评论 -
python更新版本多线程下载音乐
'''Description:Author: pdhDate: 2020-11-05 12:12:22LastEditors: pdhLastEditTime: 2020-11-06 14:47:55FilePath: \down\down.py'''# coding=utf-8import osimport requestsfrom concurrent.futures import ThreadPoolExecutorimport threadingimport async.原创 2020-11-11 21:10:00 · 283 阅读 · 0 评论 -
python多线程下载音乐
'''Description:Author: pdhDate: 2020-11-05 12:12:22LastEditors: pdhLastEditTime: 2020-11-06 14:47:55FilePath: \down\down.py'''# coding=utf-8import osimport requestsfrom concurrent.futures import ThreadPoolExecutorimport threadingimport async.原创 2020-11-11 15:04:35 · 209 阅读 · 0 评论 -
python解析html
用HTMLParser解析html参考:https://www.cnblogs.com/liuhaidon/archive/2019/12/18/12060184.html'''Description: Author: pdhDate: 2020-11-09 11:52:39LastEditors: pdhLastEditTime: 2020-11-09 15:37:57FilePath: \html_mp3\down.py'''# coding=utf-8import re原创 2020-11-09 16:53:24 · 207 阅读 · 0 评论 -
pymysql操作数据库
安装pymysqlpip install pymysql -i http://pypi.douban.com/simple/ --trusted-host pypi.douban.comdb.py# coding=utf-8import pymysqlfrom apscheduler.schedulers.background import BackgroundSchedulerclass CDb(): def __init__(self): self.m原创 2020-11-06 16:13:40 · 215 阅读 · 1 评论 -
彻底搞懂Python切片操作
参考:https://www.cnblogs.com/malinqing/p/11272485.html 在利用Python解决各种实际问题的过程中,经常会遇到从某个对象中抽取部分值的情况,切片操作正是专门用于完成这一操作的有力武器。理论上而言,只要条件表达式得当,可以通过单次或多次切片操作实现任意切取目标值。切片操作的基本语法比较简单,但如果不彻底搞清楚内在逻辑,也极容易产生错误,而且这种错误有时隐蔽得比较深,难以察觉。本文通过详细例子总结归纳了切片操作的各种情况。若有错误和不足之处请大牛指正!原创 2020-11-06 11:29:11 · 122 阅读 · 0 评论 -
python 在新线程中运行协程
1.新线程中处理协程,防止主线程被阻塞# coding=utf-8import asyncioimport timeimport threadinggLock = threading.Lock()gStart = time.time()def pinfo(text): global gLock gLock.acquire() print(text) gLock.release()def startLoop(loop): asyncio.原创 2020-11-03 16:28:59 · 919 阅读 · 0 评论 -
python 计算lrc中不重复单词数量
# coding=utf-8import osimport concurrentimport threadingimport asynciogPool = concurrent.futures.ThreadPoolExecutor(5)gLock = threading.Lock()async def dealOne(path): words = {} with open(path, "r") as f: while True: .原创 2020-11-03 14:11:35 · 1006 阅读 · 0 评论 -
python协程asyncio
参考:https://www.jianshu.com/p/b5e347b3a17cpython asyncio网络模型有很多中,为了实现高并发也有很多方案,多线程,多进程。无论多线程和多进程,IO的调度更多取决于系统,而协程的方式,调度来自用户,用户可以在函数中yield一个状态。使用协程可以实现高效的并发任务。Python的在3.4中引入了协程的概念,可是这个还是以生成器对象为基础,3.5则确定了协程的语法。下面将简单介绍asyncio的使用。实现协程的不仅仅是asyncio,tornado和ge原创 2020-11-02 22:11:04 · 972 阅读 · 1 评论 -
python函数参数为一个星星*和两个星星**区别
函数参数为 test( *args) 就当传入参数为数组元组。函数参数为 test(**args)就当传入参数为字典。# coding=utf-8def testX(*arg): for i in arg: print("参数为一个星 *i {}".format(i))def testXX(**ags): for k, v in ags.items(): print("参数为两个星 **{} = {}".format(k, v)...原创 2020-11-02 12:18:14 · 614 阅读 · 0 评论 -
python使用ThreadPoolExecutor
# coding=utf-8import osimport requestsimport timefrom concurrent import futuresfrom concurrent.futures import wait as fu_waitimport threadinggLock = threading.Lock()gPool = futures.ThreadPoolExecutor(7)def printInfo(txt): global gLock .原创 2020-11-01 21:16:34 · 1005 阅读 · 0 评论 -
python 协程加多线程下载asyncio、ThreadPoolExecutor
使用协程同时下载多文件,碰到阻塞函数则无法同时下载多文件,结合多线程处理。# coding=utf-8import asyncioimport osimport requestsfrom concurrent.futures import ThreadPoolExecutorgPool = ThreadPoolExecutor(5)async def downOne(loop, url): name = os.path.basename(url) print("do原创 2020-11-01 20:23:29 · 1121 阅读 · 0 评论 -
python 使用协程asyncio加run_in_executor线程池处理同时下载多文件
同时下载多文件,碰到阻塞的函数则用run_in_executor来新开线程跳过阻塞# coding=utf-8import asyncioimport osimport requestsasync def downOne(loop, url): name = os.path.basename(url) print("downOne:start {}".format(name)) # loop = asyncio.get_event_loop() # req原创 2020-11-01 20:09:16 · 4170 阅读 · 0 评论 -
python下载英语听力资料
下载地址:https://www.tingclass.net/# coding=utf-8import requestsimport os# import shutildef downLrc(): root = os.getcwd() KEY_LRC = ".lrc" KEY_MP3 = ".mp3" urlMap = {KEY_LRC: "http://down11.tingclass.com/textrar/lesson/0000/72/1.lrc",原创 2020-11-01 14:38:37 · 291 阅读 · 0 评论 -
python使用Future、async、await、wait、gather、ensure_future、as_completed
参考:https://blog.csdn.net/weixin_45139605/article/details/90798253# coding=utf-8import functoolsimport asyncioimport threadingimport timedef printInfo(f, n): print("printInfo: {}, {}".format(f, n)) # f.set_result("ok")async def one(al原创 2020-10-29 16:21:38 · 2850 阅读 · 3 评论 -
python中协程Future
Futureasyn.py# coding=utf-8import functoolsimport asyncioimport threadingimport timedef getInfo(name): print("getInfo: name {}".format(name))def over(fu, name): fu.set_result("over: finish {}".format(name)) print("over: name =原创 2020-10-29 14:55:25 · 231 阅读 · 0 评论 -
python的functools用来封装函数,类似javascript的bind函数
# coding=utf-8import asyncioimport functoolsdef callback(fu, n): print("{}: future donw:{}".format(n, fu.result()))async def regCallback(allDone): print("reg callback") allDone.add_done_callback(functools.partial(callback, n=18)) .原创 2020-10-28 17:22:43 · 262 阅读 · 0 评论 -
服务器客户端配置数据与protobuf数据转换流程操作
hs_cp_res.bat:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::@author pdh::@function 专门用于将生成的动画、通讯协议、路径资源拷贝到程序对应的路径下:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::echo offset OLD_PATH=%cd%set SRC_TOOL_PATH=..\..\doc原创 2020-10-22 10:26:08 · 626 阅读 · 0 评论 -
python中的yield和yield from
参考:https://www.cnblogs.com/wongbingming/p/9085268.html参考:https://www.cnblogs.com/wongbingming/p/9085268.htmlyield_gen.py# coding=utf-8def genYieldFrom(*args): for item in args: yield from itemdef genYield(): for i in range(5):原创 2020-10-18 22:12:33 · 440 阅读 · 0 评论