这个python脚本应该在所需的时间关闭计算机,但问题是在第9行,如果'小时'等于当前小时,而不是程序没有查看分钟。我应该添加或更改什么? 感谢。
import subprocess
import datetime as dt
import time
hour = dt.datetime.now().hour
minute = dt.datetime.now().minute
print("Your computer is about to get shutdowned")
while hour != 23 and minute != 28:
time.sleep(2)
print("not yet!")
subprocess.call(["shutdown", "/s"])
答案 0 :(得分:1)
正如from appJar import gui
count=10
def pressed(btnName):
global count
count-=1
win.setLabel("lb1","Count= "+ str(count))
if count == 0:
win.after(500, win.stop)
win = gui()
win.addLabel("lb1", "empty")
win.addButton("PRESS", pressed)
win.go()
所述,您在启动程序时设置了user2357112
和hour
,但从未再次更新过。
这应该有效:
minute
如果需要关机,您不需要每2秒检查一次。两分钟就足够了。
答案 1 :(得分:0)
你应该在循环中获得小时和分钟,否则你在启动脚本时只获得一个值,并且值永远不会更新......
尝试类似:
Book A: <Users Rating>
Book B: <BLANK>
Book C: <BLANK>
答案 2 :(得分:0)
改变&#39;和&#39;到&#39;或&#39;。你还必须在循环内更新小时和分钟。
答案 3 :(得分:0)
实际上,您需要在23:28计算下一个截止日期:
import datetime
import time
now = datetime.datetime.now()
due_date = now.replace(hour=23, minute=28)
if due_date < now:
due_date += datetime.timedelta(days=1)
然后,你可以倒计时了:
print("Your computer is about to get shutdowned...")
while datetime.datetime.now() < due_date:
time.sleep(2)
duration = due_date - datetime.datetime.now()
print("... in {:d} seconds".format(int(duration.seconds)))