server上跑housecleaning的脚本,需要比较时间内容
例如t1 和t2都是datetime.datetime类型,则可以通过下面的sample code来计算二者的时间差
def __time_diff(t1,t2):
seconds = (t1-t2).seconds
return seconds
例如:
t1 = 2014-09-02 10:43:55
则需要把这个str转换为datetime类型:
def __str2time(s):
t = time.strptime(s,'%Y-%m-%d %H:%M:%S')
latest_active_time = datetime(*t[:6])
return latest_active_time
其中,time.strptime的第一个参数是表示时间的一个字符串,第二个参数是转换模式
t[:6]是一个包含6个元素的元组
至于那个*号是干什么的,我也不知道,只能去学习一下了。。参考2的内容
对于def func(*args):,*args表示把传进来的位置参数存储在tuple(元组)args里面。例如,调用func(1, 2, 3) ,args就表示(1, 2, 3)这个元组 。
例如:
>>> def func(*x):
if len(x)==0:
print 'None'
else:
print x
>>> func(1)
(1,) #存放在元组中
>>> func()
None
>>> func(1,2,3)
(1, 2, 3)
那如果想直接传一个元组给这个函数呢?例如t=(1,2,3),那么在元组名前面加*,就可以传给func方法了。
而对于def func(**args):,**args表示把参数作为字典的健-值对存储在dict(字典)args里面。例如,调用func(a='I', b='am', c='wcdj') ,args就表示{'a':'I', 'b':'am', 'c':'wcdj'}这个字典 。
同理,如果想传一个字典给func函数,则需要使用**,即d={'a':'fuck', 'b'='shit'},则使用func(**d)即可。
reference:
1. http://www.cnblogs.com/finallyliuyu/archive/2012/02/17/2356160.html
2. http://blog.csdn.net/delphiwcdj/article/details/5746560
3. http://www.cnblogs.com/smiler/archive/2010/08/02/1790132.html