所以我目前有 python 打印函数运行完成后需要多长时间,例如:
import time
t = time.time()
# do something in here
print "\n Time Taken: %.3f sec" % (time.time()-t)
Run Code Online (Sandbox Code Playgroud)
但我想显示自函数启动以来已经过去的生存时间,但我不太想出一种方法来实现这一点。
例如在终端中我希望它说这样的话:
Working on xFunction. Time Elapsed 72.485 sec... (live updated time)
xFunction Has finished.
Time Taken: 1152.546 sec
Run Code Online (Sandbox Code Playgroud)
任何帮助,将不胜感激。
下面是一个线程的示例,该线程将打印自启动以来已经过去了多少时间,并且可以从主循环中停止。
import time
import threading
class ElapsedTimeThread(threading.Thread):
    """"Stoppable thread that prints the time elapsed"""
    def __init__(self):
        super(ElapsedTimeThread, self).__init__()
        self._stop_event = threading.Event()
    def stop(self):
        self._stop_event.set()
    def stopped(self):
        return self._stop_event.is_set()
    def run(self):
        thread_start = time.time()
        while not self.stopped():
            print("\rElapsed Time {:.3f} seconds".format(time.time()-thread_start), end="")
            #include a delay here so the thread doesn't uselessly thrash the CPU
            time.sleep(0.01)
if __name__ == "__main__":
    start = time.time()
    thread = ElapsedTimeThread()
    thread.start()
    # do something
    time.sleep(5)
    # something is finished so stop the thread
    thread.stop()
    thread.join()
    print() # empty print() to output a newline
    print("Finished in {:.3f} seconds".format(time.time()-start))
Run Code Online (Sandbox Code Playgroud)
这会给出以下输出,其中经过的时间从零开始计数并被覆盖:
J:\>python thr_time.py
Elapsed Time 5.000 seconds
Finished in 5.001 seconds
Run Code Online (Sandbox Code Playgroud)
请注意,此代码使用 Python 3。有关停止线程的更多信息,请参见此处和此处。
如果您想对任何部分进行澄清,请告诉我。
|   归档时间:  |  
           
  |  
        
|   查看次数:  |  
           2270 次  |  
        
|   最近记录:  |