python
rkingggggg
这个作者很懒,什么都没留下…
展开
-
tornado后台运行
PeriodicCallback is not normally used with coroutines在协程中一般不使用PeriodicCallback而是使用spawn_callback(本质是调用add_callback)async def minute_loop(): while True: await do_something() ...原创 2019-10-15 19:52:02 · 874 阅读 · 0 评论 -
Python 之 new
Python 之 newclass Stu(object): def __new__(cls, *args, **kw): return super(Stu, cls).__new__(cls) def __init__(self, name, age): self.name = name self.age = age d...原创 2019-02-24 15:40:49 · 173 阅读 · 0 评论 -
python 之树序列化和反序列化
class TreeNode(object): def __init__(self, val): self.val = val self.left = None self.right = Noneclass Solution(object): def creatTree(self): t = TreeNode(...原创 2019-02-19 09:45:08 · 687 阅读 · 0 评论 -
Flask部分分析
Flask学习environ为一个包含所有HTTP请求信息的dict对象;如下所示,重点有PATH_INFO,url 的路径“SERVER_PORT”: “8000”“REQUEST_METHOD”: “GET”“wsgi.url_scheme”: “http”“HTTP_USER_AGENT”: “Mozilla/5.0 (X11; Linux x86_64) AppleWebKi...原创 2019-02-13 22:29:28 · 152 阅读 · 0 评论 -
utf8 bom and without bom
「UTF-8」和「带 BOM 的 UTF-8」的区别就是有没有 BOM。即文件开头有没有 U+FEFF。python在使用时,直接读取with bom的文件会有问题,使用str.strip('\ufeff')去除bom...原创 2019-09-04 23:38:01 · 2248 阅读 · 0 评论 -
判断某个值是否在集合或列表中时,使用集合速度更快
python中利用in来判断value是否在集合或列表中对于列表,内部实现所采用的方法是遍历;对于集合,在向集合插入值时,会先将值做哈希;在判断value是否存在时,直接计算哈希就能判断出是否存在...原创 2019-09-04 23:42:55 · 3040 阅读 · 0 评论 -
python实现rsa的公钥加密、私钥解密及私钥加密、公钥解密
rsa包中现成的公钥加密、私钥解密代码import rsadef rsa_encrypt(d_str): # 生成公钥和私钥 pubkey, privkey = rsa.newkeys(1024) # 将字符串进行编码 content = d_str.encode('utf-8') # 公钥加密 crypto = rsa.encrypt(co...原创 2019-09-05 22:54:35 · 8350 阅读 · 9 评论 -
在python中对rsa密钥的简单分析1
rsa密钥的生成、主要构成、序列化及反序列化import rsa# 生成密钥(1024太长了,就用16意思一下)public, private = rsa.newkeys(16)print(private.d, private.n)print(public.e, public.n)'''输出:随机生成,所以会不一样PublicKey(55973, 65537)对于公钥来说,主要...原创 2019-09-05 23:13:04 · 372 阅读 · 0 评论 -
python和C获取cpu 序列号
C语言获取 cpu序列get_cpu_info.c #include <stdio.h> void cpu_id(char *id) { char s[17]; unsigned int s1,s2; char sel; asm volatile...原创 2019-09-26 17:09:32 · 1374 阅读 · 0 评论 -
通过ctype由python向C语言传递char *,获取新结果
test.c文件#include <stdio.h>void get_new_string(char *dst, int len){ int i=0; for(i=0; i<len; i++){ dst[i] = dst[i]+1; }}gcc -fPIC -c test.cgcc -shared -o tes...原创 2019-09-29 18:59:56 · 3334 阅读 · 0 评论 -
以https启动tornado
制作SSL key生成rsa密钥openssl genrsa -des3 -out server.key 1024注意:Enter pass phrase for server.key:提示需要输入密码;Common Name (e.g. server FQDN or YOUR name) []:服务器IP根据密钥生成csropenssl req -new -key ser...原创 2019-09-30 17:47:30 · 320 阅读 · 0 评论 -
tornado开启服务+后台运行
import tornado.ioloopimport tornado.webfrom tornado.web import RequestHandler, Application, urlfrom tornado import httpclient, genimport tornado.httpserver, timeclass MainHandler(RequestHandler)...原创 2019-10-01 22:09:08 · 1982 阅读 · 0 评论 -
tornado和asyncio
async 2 运行 loop.run_until_complete(future) loop.run_forever() creat_task需要存在一个正在运行的loop asyncio.create_task是继承于loop.create_task asyncio.run相于于loop.run_until_co...原创 2019-10-08 19:05:50 · 706 阅读 · 0 评论 -
python单例模式
参考链接:https://www.cnblogs.com/huchong/p/8244279.html# 1、使用模块# 略# 2、使用装饰器###########################################################def Singleton(cls): _instance = {} def wrap(*kargs,...原创 2019-10-09 19:53:37 · 135 阅读 · 0 评论 -
python正则 ?:
(?: re) , 类似 (...), 但是不表示一个组>>> out = re.match(r"(?:打开|放大|weg)(\d+)度", "weg6度")>>> out.groups()('6',)>>> out = re.match(r"(打开|放大|weg)(\d+)度", "weg6度")>>> out....原创 2019-10-11 19:03:00 · 126 阅读 · 0 评论 -
python 之 GIL
什么是GIL?即全局解释器锁(global interpreter lock),每个线程在执行时候都需要先获取GIL,保证同一时刻只有一个线程可以执行代码,即同一时刻只有一个线程使用CPU,也就是说多线程并不是真正意义上的同时执行。那么,我们改如何解决GIL锁的问题呢?1.更换cpython为jpython(不建议)2.使用多进程完成多线程的任务3.在使用多线程可以使用c语言去...转载 2019-02-12 23:05:47 · 88 阅读 · 0 评论 -
python实现deepcopy
def deepCopy(src): if isinstance(src, dict): dst = {} for k,v in src.items(): dst[k] = deepCopy(v) return dst elif isinstance(src, list or tuple): ...原创 2019-02-12 22:57:54 · 788 阅读 · 3 评论 -
转 Werkzeug(Flask)之Local、LocalStack和LocalProxy
https://www.jianshu.com/p/3f38b777a621转载 2019-02-12 20:35:22 · 209 阅读 · 0 评论 -
学习之 信号量与bar/定时 166ke
import threading, timesem = threading.Semaphore(3) #控制执行最多三个执行def run(): with sem: for i in range(10): print("%s %d" %(threading.current_thread().name, i)) time...原创 2019-01-17 22:25:17 · 402 阅读 · 0 评论 -
学习之 线程通信event/生产者与消费者/线程调度 167
import threading, timesem = threading.Semaphore(3)def run(): event = threading.Event() def fun(): for i in range(5): #阻塞,等待事件触发 event.wait() #重置 ...原创 2019-01-17 22:41:40 · 89 阅读 · 0 评论 -
学习之 线程通信 条件控制 168
学习之 线程通信 条件控制 168import threading, time#线程条件变量cond = threading.Condition()def run1(): with cond: for i in range(0, 10, 2): print(threading.current_thread().name, i) ...原创 2019-01-17 22:48:07 · 75 阅读 · 0 评论 -
Python学习之 协程 169
Python学习之 协程 169子程序/函数:在所有语言中都是层级调用,比如A调用B,在B执行的过程中又可以调用C,C执行完毕执行B,再执行A通过栈实现概述:看上去也是子程序,但执行过程中,在子程序内部可中断,然后转而执行协程是一个线程,与线程相比效率极高,也不需要对共享资源进行加锁generator生成器 ...原创 2019-01-17 22:59:45 · 81 阅读 · 0 评论 -
Python学习 线程之第162课
进程启动默认会启动一个线程 from threading import local, Threadimport timeimport randomret = local()def process(): out = ret.hello print(out)def task(arg): ret.hello = arg process()...原创 2019-01-14 16:20:16 · 87 阅读 · 0 评论 -
python学习之 urllib的post与get
当urlopen中data为None或不写时,此时为GET;当data不为None时,此时为POSTfrom urllib import request,parseimport jsonurl = 'http://192.168.10.1/api.php'req = request.Request(url)data = parse.urlencode({'c':'get_eq...原创 2019-01-19 18:02:32 · 212 阅读 · 0 评论 -
Python学习 线程之第163课
from threading import Locklock = Lock()with lock: pass能够自动开关锁from threading import local, Threadfrom threading import Lockimport threadingimport timeimport randomdata = 100ret = local(...原创 2019-01-15 13:56:45 · 95 阅读 · 0 评论 -
Python学习 线程之第164课
from threading import local, Threadret = local()让线程有独立的空间用于为每个线程绑定一个数据库链接,http请求,用户身份信息等from threading import local, Threadfrom threading import Lockimport threadingimport timeimport random...原创 2019-01-15 13:57:24 · 78 阅读 · 0 评论 -
python学习 进程之156-159课
python全栈+人工智能入门到精通 视频视频课程学习第156集 进程、线程11、多核CPU实现多任务原理:真正的并行执行多任务只能在多核CPU上实现,但是由于任务数量远远多于CPU的核心数量,所以,操作系统会自动把很多任务轮流调度到每个核心上执行并发:看上去一起执行,任务数多于CPU核心数并行:真正一起执行,任务数小于等于CPU核心数实现多任务的方式: a、多进程模...原创 2019-01-09 23:48:03 · 154 阅读 · 0 评论 -
Python学习 进程之第160-161课
封装进程对象 第160课myProcess.pyfrom multiprocessing import Processimport os, timeclass myProcess(Process): def __init__(self, name): Process.__init__(self) self.name = name ...原创 2019-01-10 00:00:05 · 98 阅读 · 0 评论 -
Python之HTMLParse
from html.parser import HTMLParserclass MyParser(HTMLParser): def handle_starttag(self, tag, attrs): print('start <%s>' % tag) print("attrs", end="") if attrs: ...原创 2019-01-15 19:26:04 · 1100 阅读 · 0 评论 -
python 学习之 数据库
import pymysql#连接数据库#参数1:mysql服务所在主机的IP#参数2:用户名#参数3:密码#参数4:要连接的数据库名db = pymysql.connect('localhost', 'root', 'qw1234', 'test')#创建一个cursor对象cursor = db.cursor()#执行命令#sql = 'drop table if exi...原创 2019-01-21 22:01:23 · 93 阅读 · 0 评论 -
python学习之 正则 部分替换
将字符串中,字母间的数字替换成‘%’import redef parse(matched): s = matched.group('v1') end = matched.group('v2') v = matched.group('v') #print(v) return s+"%"+end s = 'A23GG4HFD567GGG4846'...原创 2019-01-23 19:00:21 · 849 阅读 · 0 评论 -
python 之 or and not
>>> 0 or 34 and 1 and FalseFalse>>> 1 or 34 and 1 and False1>>> 0 or 34 and 0 or 34 and FalseFalse#and的优先级大于or,not优先级最高#有and时先计算and,再计算or#0 or 34 and 0 or 34 ...原创 2019-02-16 11:41:42 · 3911 阅读 · 0 评论 -
转 Flask源码剖析详解
https://www.cnblogs.com/caoxing2017/p/8282530.html https://blog.csdn.net/bestallen/article/details/54342120转载 2019-01-30 23:00:02 · 76 阅读 · 0 评论 -
python学习之 字符串、字节、编解码转换
字符串转字节bytes>>> '学'.encode()b'\xe5\xad\xa6'>>> '学'.encode(encoding='raw_unicode_escape')b'\\u5b66'>>> '学'.encode(encoding='gbk')b'\xd1\xa7'字节bytes 转字符串>>...原创 2019-01-11 11:14:28 · 191 阅读 · 1 评论