我想以毫秒为单位测量时间,这一行是:
before=datetime.datetime.now()
response = urllib2.urlopen("https://www.google.com")
after=datetime.datetime.now()
它应该是服务器的一种解决方法,它不会ping回,所以我必须从服务器响应中测量它。 我可以得到字符串返回字符串 0:00:00.034225 如果我扣除两次并且我能够获得毫秒作为子字符串,但我希望以更清洁的方式获得毫秒(完全不同于ms,包括从秒转换的时间,如果服务器以非常大的延迟响应的话。)
答案 0 :(得分:5)
after - before
是datetime.timedelta
对象,total_seconds
方法会为您提供所需内容。您可以找到其他信息in the Python docs。
您只需乘以1000即可获得毫秒数。不要担心,虽然该方法称为total_seconds
,但它包含毫秒作为小数位。样本输出:
>>> d = t1 - t0
>>> d.total_seconds()
2.429001
这不会给你超时,只是对持续时间的测量。
答案 1 :(得分:1)
urlopen
允许您传递超时参数,并在经过很长时间后自动中止。 From the docs:
urllib2.urlopen(url[, data][, timeout])
可选
timeout
参数指定阻塞操作(如连接尝试)的超时秒数(如果未指定,则为 将使用全局默认超时设置)。这实际上只有作用 用于HTTP,HTTPS和FTP连接。
Python实际上有一种计算小块代码的机制 - timeit.Timer
- 但这是用于性能分析和测试的,而不是用于实现自己的超时。