import time
number = 1
while number > 0:
print "Testing"
time.sleep(5) #print every 5 seconds
这只是一个示例循环。我是一名半初学者,我不确定如何进行按键(任何按键都可以)显示程序运行的时间。该程序将在Windows 7和Linux上运行。我如何做一个按键显示我的程序运行了多久?
非常感谢。
import time
number = 1
while number > 0:
print "Testing"
time.sleep(5) #print every 5 seconds
这只是一个示例循环。我是一名半初学者,我不确定如何进行按键(任何按键都可以)显示程序运行的时间。该程序将在Windows 7和Linux上运行。我如何做一个按键显示我的程序运行了多久?
非常感谢。
欢迎来到Stack Overflow和Python!你会喜欢它的。
首先,我会告诉你如何打印出你的代码已经运行的时间。 time
模块包含一个time()
函数,它将当前时间作为Unix时间戳(自1970年1月1日以来的秒数)。如果您在函数的开始处将它分配给一个变量,您可以简单地在循环中调用它,并从当前时间中减去它以获得运行时间。和我一起到目前为止?
(您也可以删除您number
变量和number > 0
检查,只需用True
取代它。)
import time
start_time = time.time()
while True:
print "I've been running for %d seconds!" % (time.time() - start_time)
time.sleep(5) #print every 5 seconds
但你问怎么给每个用户按下一个键时得到它。如果你只是想“进”,你可以这样做:
import time
start_time = time.time()
while True:
print "I've been running for %d seconds!" % (time.time() - start_time)
raw_input("Press Enter...")
的raw_input()
功能会等待用户按Enter键,然后打印出的运行时间。
一次一个问题。
依次尝试每个问题,然后询问您是否需要帮助。
这样一个简单的问题有很多复杂性和方法。
如果您正在查找当前正在运行的进程的正常运行时间,请使用OS通过子进程模块查询该进程以运行命令行操作,如'ps | grep“foo”'
通常,程序一次只能做一件事。例如,代码可以工作或寻找按键。如果您需要运行必须同时运行两个不同的代码段,则将代码段生成(运行)为单独的线程。对于你的问题,你可以产生两个线程(代码片断),一个工作和一个查询时间。
使用python中的线程模块来封装worker函数并创建一个查询线程。但是,当工作线程完成时,您还需要查询线程也终止。一种方法是将其定义为守护进程线程。守护程序线程在它们是唯一活动的线程时终止。
例如:
from time import sleep
import datetime
import threading
def do_someting():
MAX_RUN_TIME = 300 #Seconds
for i in xrange(MAX_RUN_TIME):
print i,
sleep (1)
class worker_thread(threading.Thread):
def run(self):
do_someting()
class keypress_daemon_thread(threading.Thread):
def __init__(self):
threading.Thread.__init__(self) # Initialize the parent class
self.daemon = True # Terminates if only daemon threads are left
def run(self):
startTime = datetime.datetime.now()
while True:
raw_input()
timeDelta = datetime.datetime.now() - startTime
print 'Up for', timeDelta
if __name__ == '__main__':
workerThread = worker_thread()
keyPressThread = keypress_daemon_thread()
workerThread.start()
keyPressThread.start()
workerThread.join()
我不知道这是可能的,但如果我按下Enter键,它说:“我一直在运行5秒钟”,然后我机10秒后进入, python可以删除初始输出并将其更改为15秒。 (试图避免滚动时间输出) – user1539175
@ user1539175,看看http://stackoverflow.com/questions/6169217/replace-console-output-in-python –
@BiRico问题是,鉴于上面的例子使用'raw_input',你使用Enter键来获得下一行。如果你想避免这种情况,实际的答案会变得更加复杂。 –