python datetime和str转换 计算时间差;Python 函数接收元组和字典参数

server上跑housecleaning的脚本,需要比较时间内容


例如t1 和t2都是datetime.datetime类型,则可以通过下面的sample code来计算二者的时间差

def __time_diff(t1,t2):
    seconds = (t1-t2).seconds
    return seconds


但是如果t1或者t2是一个字符串的时间表示呢?

例如:

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

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值