python requests的content和text方法的区别 2016-03-12 | perl/php/python/gawk/sed requests模块的content和text属性的区别,从print 结果来看是没有任何区别的。从源码描述信息上来看,可以发现resp.text返回的是Unicode型的数据、resp.content返回的是bytes型也就是二进制的数据。也就是说,如果你想取文本,可以通过r.t…… Continue reading
python logging配置时间或大小轮转 2016-03-10 | perl/php/python/gawk/sed python中的很多模块是非常牛X的,之前提到过logging模块(其功能类似于java下的Log4j ),由于最近一个涉及网络排障的脚本需要日志输出,这里就使用了python的logging模块去实现。日志全部写到一个文件中时,随着时间的推移文件会越来越来,这里可以利用Timed…… Continue reading
python模块之collections 2016-02-21 | perl/php/python/gawk/sed collections是Python内建的一个集合模块,提供了许多有用的集合类。Python拥有一些内置的数据类型,比如str, int, list, tuple, dict等, collections模块在这些内置数据类型的基础上,提供了几个额外的数据类型: namedtuple(): 生成可以使用名字来访问元素内容的tuple子类 deque: 双端…… Continue reading
python持久化存储之shelve 2016-01-08 | perl/php/python/gawk/sed shelve类似于一个key-value数据库,可以很方便的用来保存Python的内存对象,其内部使用pickle来序列化数据。简单来说,使用者可以将一个列表、字典、或者用户自定义的类实例保存到shelve中,下次需要用的时候直接取出来,就是一个Python内存对象,不需要像传统…… Continue reading
Python序列化模块pickle和cPickle 2016-01-07 | perl/php/python/gawk/sed Python的序列化是指把变量从内存中变为可以储存/传输的数据/文件的过程. 在Python中叫pickling,在其他语言中也被称之为serialization,marshalling,flattening等等,都是一个意思。序列化之后,就可以把序列化后的内容写入磁盘,或者通过网…… Continue reading
python文件操作(一)ConfigParser模块读写ini文件 2015-07-24 | perl/php/python/gawk/sed Python的ConfigParser Module 中定义了3个类对INI文件进行操作。分别是RawConfigParser、ConfigParser、SafeConfigParser。 RawCnfigParser是最基础的INI文件读取类,ConfigParser、SafeConfigPa…… Continue reading
python队列模块Queue 2015-07-15 | perl/php/python/gawk/sed 一、初识Queue模块 Queue模块实现了多生产者、多消费者队列。它特别适用于信息必须在多个线程间安全地交换的多线程程序中。这个模块中的Queue类实现了所有必须的锁语义。它依赖于Python中线程支持的可用性;参见threading模块。 模块实现了三类队列:FIFO(First…… Continue reading
python threading之Condition 2015-07-15 | perl/php/python/gawk/sed Python提供的Condition对象提供了对复杂线程同步问题的支持。Condition被称为条件变量,除了提供与Lock类似的acquire和release方法外,还提供了wait和notify方法。线程首先acquire一个条件变量,然后判断一些条件。如果条件不满足则wai…… Continue reading
python threading之死锁和可重入锁 2015-07-14 | perl/php/python/gawk/sed 一、死锁 简单来说,死锁是一个资源被多次调用,而多次调用方都未能释放该资源就会造成死锁,这里结合例子说明下两种常见的死锁情况。 1、迭代死锁 该情况是一个线程“迭代”请求同一个资源,直接就会造成死锁: 1import threading 2import time 3class MyThread(threading.Thread): 4 def run(self): 5 global num 6 time.sleep(1) 7 if mutex.acquire(1): 8 num = num+1 9 msg = self.name+' set num to '+str(num) 10 print msg 11 mutex.acquire() 12 mutex.release() 13 mutex.release() 14num = 0 15mutex =…… Continue reading
python threading之互斥锁 2015-07-13 | perl/php/python/gawk/sed python threading模块有两类锁:互斥锁(threading.Lock )和可重用锁(threading.RLock)。两者的用法基本相同,具体如下: 1lock = threading.Lock() 2lock.acquire() 3dosomething…… 4lock.release() RLock的用法是将threading.Lock()修改为threading.RLock()。…… Continue reading