![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
python
文章平均质量分 54
wanding_
Java Python Linux shell
展开
-
下载安装easyInstall
Easily download, build, install, upgrade, and uninstall Python packageshttps://pypi.python.org/pypi/setuptools#downloads在cmd下执行python xxxx即可原创 2014-03-12 14:04:39 · 660 阅读 · 0 评论 -
如果实现python字典的只读, 考虑字典内容有list, dict的嵌套问题
下面代码并没有实现, 预留后续继续研究:1. 完全模拟字典行为2. 只读3. 特别的在遍历,嵌套上面需考虑class _CfgData(object): """配置数据,主要为了实现类似JSON格式数据的ReadOnly。 @author: ligx@500.com """ def __init__(self, data): sel原创 2016-06-23 17:15:55 · 2143 阅读 · 0 评论 -
python-cookbook事件驱动的i/o模型
行行色色的事件驱动或异步I/O的包, 我们无法理解底层实现模型, 根据python的cookbook, 比较明了的体现了该模型, 便于今后理解及开发相关ioloop, eventloop。基于select实现的单进程单线程的事件轮询模型。 测试用telnet 127.0.0.1 8888可以多开几个窗口#!/usr/bin/env pythonclass EventHandle原创 2016-07-12 15:04:48 · 515 阅读 · 0 评论 -
根据cookbook, 多线程情况的事件驱动IO
模拟使用线程池, 事件驱动IO模型, 这里使用的select1. 采用对socket,初始化完成之后,内核状态是不可读,不可写(无东西可读)2. 线程池完成工作之后, 回调_complete, 把线程计算结果及回调函数放入pending的list3. 发送一个字节, 告诉内核select, 返回flieno那个socket可读,执行handle_receive把pending依次处理完原创 2016-07-12 17:56:54 · 512 阅读 · 0 评论 -
使用python的yield实现任务调度.给定一个任务列表,每个任务轮流切换执行,类似于切片
任务:给定一个数N, 每次对这个数减1给定一个数N, 每次对这个数加的次数统计任务列表就是上面多个任务, 要求每个任务轮流执行(调度):#!/bin/python3.5#coding=utf8'''sched task yield'''def count_donw(n): while n > 0: print("count donw", n) yie原创 2016-07-14 15:00:00 · 1354 阅读 · 0 评论 -
python源码PyObject简单解析
1. python一切皆定义, 对象定义object.h/* Define pointers to support a doubly-linked list of all live heap objects. */#define _PyObject_HEAD_EXTRA \ struct _object *_ob_next; \ st原创 2016-07-21 12:03:32 · 3364 阅读 · 0 评论 -
python垃圾回收及闭包异常抛出
#coding: gbkimport sysdef foo(func): def bar(*args, **kwargs): ret = func(*args, **kwargs) print "done func" return ret return barclass Obj(object): def __原创 2017-05-31 16:40:30 · 386 阅读 · 0 评论 -
tornado版本及多线程情况梳理
python2.6 tornado-4.2-py26环境import tornado.ioloopimport tornado.webfrom tornado.web import asynchronousfrom concurrent import futures executor = futures.ThreadPoolExecutor(max_workers=2)def cal原创 2017-07-06 16:55:09 · 1154 阅读 · 0 评论 -
python2.6对json字符串有序的解析成有序的字典
在某些设计不合理的的加密方式下,生成的json字符串,解析成对象的时候,序保证字典key的先后顺序。Python2.6不支持,采取的办法是:1. 把Python2.7的json目录复制到工程目录,取名叫jsonx2. 修改几处import使无语法错误3. 参考它的encoder,实现如下代码:import jsonxfrom jsonx.encoder imp原创 2017-09-26 10:38:58 · 1244 阅读 · 0 评论 -
不使用多线程, 使用select, 实现http请求的异步
使用select实现ioloop, 实现http请求异步,有利于理解select(epool)模型, 代码如下:#!/bin/pythonimport selectimport timefrom http.client import HTTPConnectionclass Handler(object): passclass AsyncHTTPHandl原创 2017-09-30 11:39:12 · 567 阅读 · 0 评论 -
I/0事件驱动实现异步curl,一
先来个简单的,在事件处理上面并没有实现异步#!/bin/pythonimport selectfrom http.client import HTTPConnectionclass Handler(object): passclass AsyncHTTPHandler(Handler): def __init__(self, url, io_loop, callba原创 2016-07-14 12:19:55 · 529 阅读 · 0 评论 -
tornado使用须知
一,tornado是单线程,基于select/epoll/poll监听fd读写事件的,事件驱动模型二,由于tornado的特性,则不能有任何的阻塞(IO阻塞与CPU等待), 如某个请求需要花费5秒才能完成, 则一秒tornado只能处理0.2个请求, 即使你加上20个线程异步处理,也只能每秒处理20 * 0.2 = 4 个def handler_request(self, requ原创 2017-10-13 14:26:22 · 489 阅读 · 0 评论 -
python经常管理supervisor简单介绍
一般的在没有集成进程(服务)可视化管理前,我们需要一个进程管理工具,同时具备拉取,监控的功能。supervisor轻量好用1. 安装,不细说2. 配置,举个例子:指定环境,启动命令,日志[program:msg-push]environment=PYTHONPATH=:,LD_LIBRARY_PATH=/home/www/python_lib:command原创 2017-10-16 12:07:29 · 375 阅读 · 0 评论 -
web开发者很容易困惑的地方
http协议实现的web接口,接收与发送数据,有没有可能发生丢包,表象是接受的数据不完整。答案: 不可能原因: tcp传输的可靠性,深入理解需知道tcp/ip协议的,建立连接三次握手,断开连接的四次握手如果有人问,http不是应答式的么,这里我们需要知道,htttp是应用层,TCP/IP协议层,不可混淆,举个例子,网卡把你的数据截断,你应用层是处理不了的。htt原创 2017-10-26 16:50:35 · 352 阅读 · 0 评论 -
参考sqlalchemy.pool自写连接自动回收
#coding=gbk#!/bin/python2.6import MySQLdbimport weakreffrom concurrent import futuresimport timeimport threadingpool_executor = futures.ThreadPoolExecutor(max_workers=3)def原创 2016-04-21 15:21:30 · 2665 阅读 · 0 评论 -
upd简单广播例子
给局域网同一网段发送广播包(同局域网不同网段暂时还去看)广播包发送者:#coding=gbk#!/python/binimport socketsock = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)sock.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1)原创 2016-05-03 16:05:32 · 1092 阅读 · 0 评论 -
python时间处理,当天凌晨 ,次日凌晨,滚动N天
#!/usr/bin/python#coding=utf-8# Filename : d:\py\rebuild\handler\utils.pyimport httplib,urllibfrom datetime import *class util(object):@staticmethoddef dwz(url):'''short urluse baidu.com原创 2014-03-10 11:11:40 · 4069 阅读 · 0 评论 -
python的闭包示例
def counter(start_at=0): count = [start_at] def inc(): count[0] += 1 return count[0] return incif __name__ == "__main__": c = counter(1) print c print c()原创 2014-03-10 11:36:43 · 715 阅读 · 0 评论 -
python with 简单示例
#!/usr/bin/python26#coding=utf-8import sysclass V(object): def __init__(self): print "__init__ invoke" def __exit__(self, type, value, traceback): print "__exit__"原创 2014-04-02 14:17:47 · 579 阅读 · 0 评论 -
python中文截取
username是已经进过utf-8编码之后的参数u = unicode(username,"utf-8")u = u[:4]+"*"u.encode('utf-8') 转成unicode之后,中文就是一个字节了,字母与汉字都是4个字节原创 2014-03-25 18:57:58 · 822 阅读 · 0 评论 -
python 装饰器
#coding=utf8def wrapper(func): def proc(*args, **kwargs): print "wrapper foo proc" ret = func(*args, **kwargs) return ret return proc@wrapperdef foo(): print原创 2014-08-19 22:23:20 · 707 阅读 · 0 评论 -
python调用dll
把C代码编译成dll, python可以直接调用from ctypes import *user32 = windll.LoadLibrary('user32.dll')user32.LockWorkStation()原创 2014-09-19 09:52:35 · 792 阅读 · 0 评论 -
python logger
#coding=utf8import logging# logging.basicConfig(filename="test.log",format="[%(asctime)s]:[%(threadName)s]:[%(funcName)s]:%(levelname)s:%(message)s", level=logging.INFO)logging.info("===in原创 2015-01-12 17:11:02 · 948 阅读 · 0 评论 -
python的property简单实用
1. 一定要继承object2. setter不写,修改会报错3.getter非必需, 但是可以用来做额外的事class P(object): """ must extend object """ def __init__(self, v): self._v = v @property def v(self)原创 2015-04-07 17:31:26 · 528 阅读 · 0 评论 -
看python的91个建议第7个建议, 常量写到同一个文件引发的一个问题
#coding=utf8import sysclass _const(object): class ConstError(TypeError): pass class ConstCaseError(ConstError): pass def __setattr__(self, name, value): i原创 2015-04-08 17:37:12 · 2495 阅读 · 0 评论 -
python字典元素的删除
py在遍历字典的时候,一般的有涉及到满足条件则删除该元素办法1:a = {"a": "1", "b": "2"}for k,v in a.items(): if k == "b": del a[k] print a# {'a': '1'}办法2:a = {"a": "1", "b": "2"}f = filter(lambda i: i[0] !=原创 2015-05-18 10:50:07 · 6606 阅读 · 1 评论 -
python singleton
#coding=utf8class Singleton(object): """python单例 输出结果: __new__ __init__ __new__ __init__ x 28608176 x 28608176 """ def __init__(self, name): print原创 2014-08-21 16:48:02 · 838 阅读 · 0 评论 -
python 记录
1. 继承object与不继承区别还是挺大的,之后记录默认都继承object2. python重写方法如果父类要调用记得super3.原创 2015-09-10 12:15:35 · 483 阅读 · 0 评论 -
mysql连接池, 连接的释放, 连接的回收, 连接释放机制
#!/bin/pythonfrom sqlalchemy.pool import QueuePoolimport threadingimport MySQLdbimport timedef creator(): c = MySQLdb.connect(host="192.168.41.76", db="test", user="root", passwd="root", po原创 2015-12-03 10:04:42 · 18530 阅读 · 0 评论 -
python较为安全的关闭一个流的写法
阅读python的logging模块源码,这样关闭一个流stream = self.streamself.stream = Noneif hasattr(stream, "close"): stream.close()原创 2017-11-16 15:56:48 · 1219 阅读 · 0 评论