假设使用lambda函数
s = sorted(s, key = lambda x: (x[1], x[2]))
如上所示,返回一个tuple,其中[0]是第1个排序key,[1]是第2个。[......]
Category Archives: Python
[转]使用Fabric部署网站应用
转载自:《使用Fabric部署网站应用》
以前一直用rsync同步代码到服务器,这种山寨方法用一次两次还可,每天部署10次就麻烦了,最近抽空研究了一下Fabric,发现这个东西部署起来简直太爽了。
Fabric是一个用Python开发的部署工具,最大特点是不用登录远程服务器,在本地运行远程命令,几行Python脚本就可以轻松部署。
花10分钟写了一个部署脚本fabfile.py(名字不能变),放到工程目录下:
#!/usr/bin/env python
# -*- coding:[......]
Tornado多进程启动的2种方法
单进程:
server = HTTPServer(app)
server.listen(8888)
IOLoop.instance().start()
多进程,方案1:
server = HTTPServer(app)
server.bind(8888)
server.start(0) # Forks multiple sub-processes
IOLoop.instance().start()
多进程,方案2:
sockets = tornado.netutil.bin[......]
Python中动态计算数学表达式
动态的意思是这样的需求:
假设,Python本地变量中已经存在了两个变量(不一定时代码中写死的,也可以是程序自动生成的)。
a = 3
b = 4
现在,有一个写了数学表达式的字符串:
'a + b'
则,期望其能输出7。
这个需求要2步完成:
1、生成本地变量a、b。
在实际需求中,变量的值往往也是动态生成,而非写死在代码中。
可以用locals,或者exec完成:
locals()['a'] = 3
exec[......]
Python日期时间转换
# 将20130622000000 转化为unix时间戳
def conv_time(str_time_long):
return int(time.mktime(time.strptime(str_time_long, "%Y%m%d%H%M%S")))
格式互转,需要使用datetime模块:
datetime.strptime(string, format):将日期字符串string,根据format,转化为datetime对象(六元数组)。
&g[......]