1

所以我正在编写这段代码,让我的笔记本电脑在给定时间后进入睡眠模式。奇怪的是,当程序想要执行最后一行代码时,它指出os.

我尝试放置一个简单的替代打印命令(作为测试),该命令也最终导致语法错误。我已经os.system()直接在里面尝试了命令并且有效。

我使用的python版本是3.7.2。

import time
import sys
import os
counter = 0
for x in sys.argv:
    counter+= 1

if counter== 2:
    seconds = sys.argv[1]

else:
    seconds =  sys.argv[2]+60*sys.argv[1]
time.sleep(int(seconds)
os.system('Rundll32.exe Powrprof.dll,SetSuspendState Sleep')

我希望脚本在 x 秒后或 x 分 y 秒后(取决于参数)使我的 PC 进入睡眠模式。

这就是我在 CMD 中输入命令的方式:

python file.py x (y)

是的,我在正确的文件夹中这样做。

4

1 回答 1

0

正如@SLaks指出的那样:

你错过了一个)

但是,我在您的代码中看到了一些非常奇怪的东西,这就是代码的这一部分:

counter = 0
for x in sys.argv:
    counter+= 1

if counter== 2:
    seconds = sys.argv[1]

else:
    seconds =  sys.argv[2]+60*sys.argv[1]

你不需要循环sys.argv找出它的长度,你可以使用len()

像这样:

seconds = int(sys.argv[1]) if(len(sys.argv) == 2) else (int(sys.argv[2])+60*int(sys.argv[1]))
于 2019-04-10T22:26:49.757 回答