1. commands模塊,比subprocess和os.popen好用
如下執(zhí)行shell命令,同時獲取返回值和結(jié)果
>>>commands.getstatusoutput('ls /bin/ls')
>>>(0,'/bin/ls')
2. collections.Counter類
>>> from collections import Counter
>>> fruits = ['orange', 'banana', 'apple', 'orange', 'banana']
>>> Counter(fruits)
Counter({'orange': 2, 'banana': 2, 'apple': 1})
3.copy模塊
copy.copy(x): ref copy
copy.deepcopy(x): object copy
4. ConfigParser模塊
cat format.conf
[DEFAULT]
conn_str = %(dbn)s://%(user)s:%(pw)s@%(host)s:%(port)s/%(db)s
dbn = mysql
user = root
host = localhost
port = 3306
[db1]
user = aaa
pw = ppp
db = example1
[db2]
host = 192.168.0.110
pw = www
db = example
---------------------------------------------------------
cat readformat.py
import ConfigParser
conf = ConfigParser.ConfigParser()
conf.read('format.conf')
print conf.get('db1', 'conn_str')
print conf.get('db2', 'conn_str')
-----------------------------------------------------------
python readformat.py
mysql://aaa:ppp@localhost:3306/example1
mysql://root:www@192.168.0.110:3306/example
5.argparse代替optparse
1)argparse支持參數(shù)分組
2)argparse支持子命令
3)支持 非法參數(shù)處理
指定type和default參數(shù)
cat prog.py
import?argparse
parser=argparse.ArgumentParser()
parser.add_argument("square", help="display a square of a given number",type=int,default=3)
args=parser.parse_args()
print args.square**2
下面是運行結(jié)果:
$python?prog.py 4
16
6. pandas處理csv
7.小于1G的xml用xml.etree.ElementTree, 大于1G的用lxml