我怎样才能有一个每秒更新一次的实时计时器来查看我的编程有多少 运行? python
How can I have a live timer that updates every second to see for how much my programming is running? python
有什么方法可以制作一个每秒更新一次的计时器,这样我就可以看到我的程序 运行ning 持续了多长时间。我试着做一个循环:
i = 0
for i in range(1000000):
i += 1
time.sleep(1)
然后我想将它打印到我的 discord.py 机器人中。这是它的样子:
async def on_ready():
os.system('cls')
print('', fg('red'))
print(' _____ _ ', fg('red'))
print('| ___| | __ _ _ __ _ __ _ _ ', fg('red'))
print("| |_ | |/ _` | '_ \| '_ \| | | |", fg('red'))
print('| _| | | (_| | |_) | |_) | |_| |', fg('red'))
print('|_| |_|\__,_| .__/| .__/ \__, |', fg('red'))
print(' |_| |_| |___/ ', fg('red'))
print(f'Up-Time: {i}')
print(f'Version: {version}', fg('blue'))
print('~~~~~~~~~~~~~~~~~~~~~~~~~~~~', fg('green'))
print('[Server]: The Bot is online.', fg('green'))
“Up-Time”是我想要显示时间的地方,但是当我尝试 运行 它时,什么也没有显示。但是当我把 print(i) 放在我的循环下面时,它唯一做的就是打印出数字,而不是实际的服务器 运行ning.
抱歉,如果解释不够好,我是 Whosebug 和一般编程的超级新手。抱歉,如果打扰到您了,在此先感谢您!
你不应该将 time.sleep
与 discord.py
一起使用,因为它会停止你应该使用 await asyncio.sleep(1)
.
的整个机器人
你也可以创建这个命令。
import datetime as dt
bot.launch_time = dt.datetime.utcnow()
@bot.command()
async def uptime(ctx):
delta_uptime = dt.datetime.utcnow() - bot.launch_time
hours, remainder = divmod(int(delta_uptime.total_seconds()), 3600)
minutes, seconds = divmod(remainder, 60)
days, hours = divmod(hours, 24)
await ctx.send(f"{days}d, {hours}h, {minutes}m, {seconds}s")
现在您可以使用 {prefix}uptime
它会告诉您它已经运行了多长时间。
您可以通过 multi-threading 完成此操作。你有你的功能 运行 与你的时间一起运行并且两者都立即终止功能完成 运行:
import threading
import time
def calc(): #this function generates the square of all numbers between 1 and 56000000
for i in range(1,56000000):
i*i
t1 = threading.Thread(target=calc)
t1.start() #starting a thread with the calc function
i = 1
while t1.is_alive(): #Check if the thread is alive
time.sleep(1)# print time after every second
print(f'Time elapsed ----------- {i}s')
i = i+1
t1.join() #terminate thread once calc function is done
print('Done!')
有什么方法可以制作一个每秒更新一次的计时器,这样我就可以看到我的程序 运行ning 持续了多长时间。我试着做一个循环:
i = 0
for i in range(1000000):
i += 1
time.sleep(1)
然后我想将它打印到我的 discord.py 机器人中。这是它的样子:
async def on_ready():
os.system('cls')
print('', fg('red'))
print(' _____ _ ', fg('red'))
print('| ___| | __ _ _ __ _ __ _ _ ', fg('red'))
print("| |_ | |/ _` | '_ \| '_ \| | | |", fg('red'))
print('| _| | | (_| | |_) | |_) | |_| |', fg('red'))
print('|_| |_|\__,_| .__/| .__/ \__, |', fg('red'))
print(' |_| |_| |___/ ', fg('red'))
print(f'Up-Time: {i}')
print(f'Version: {version}', fg('blue'))
print('~~~~~~~~~~~~~~~~~~~~~~~~~~~~', fg('green'))
print('[Server]: The Bot is online.', fg('green'))
“Up-Time”是我想要显示时间的地方,但是当我尝试 运行 它时,什么也没有显示。但是当我把 print(i) 放在我的循环下面时,它唯一做的就是打印出数字,而不是实际的服务器 运行ning.
抱歉,如果解释不够好,我是 Whosebug 和一般编程的超级新手。抱歉,如果打扰到您了,在此先感谢您!
你不应该将 time.sleep
与 discord.py
一起使用,因为它会停止你应该使用 await asyncio.sleep(1)
.
你也可以创建这个命令。
import datetime as dt
bot.launch_time = dt.datetime.utcnow()
@bot.command()
async def uptime(ctx):
delta_uptime = dt.datetime.utcnow() - bot.launch_time
hours, remainder = divmod(int(delta_uptime.total_seconds()), 3600)
minutes, seconds = divmod(remainder, 60)
days, hours = divmod(hours, 24)
await ctx.send(f"{days}d, {hours}h, {minutes}m, {seconds}s")
现在您可以使用 {prefix}uptime
它会告诉您它已经运行了多长时间。
您可以通过 multi-threading 完成此操作。你有你的功能 运行 与你的时间一起运行并且两者都立即终止功能完成 运行:
import threading
import time
def calc(): #this function generates the square of all numbers between 1 and 56000000
for i in range(1,56000000):
i*i
t1 = threading.Thread(target=calc)
t1.start() #starting a thread with the calc function
i = 1
while t1.is_alive(): #Check if the thread is alive
time.sleep(1)# print time after every second
print(f'Time elapsed ----------- {i}s')
i = i+1
t1.join() #terminate thread once calc function is done
print('Done!')