1

首先,抱歉标题不准确(如果有人有更好的建议如何命名这个线程,请随时告诉我),我的问题一点也不复杂。

我在 Python 中编写了一个小程序,在其中执行命令行:

import os

os.system("sudo rtcwake -m off -s 100")

你们中的一些人可能知道它只是一个 rtcwake 命令,用于关闭计算机并再次打开它(100 秒后)。

我想以一种方式实现这个程序,当执行时(例如从控制台),用户可以输入计算机应该关闭的秒数,而不是预先确定 100 秒。

这样做的正确方法是什么?

4

2 回答 2

1

format是你的朋友:

import os, sys 
if len(sys.argv) == 2:
  os.system("sudo rtcwake -m off -s {}".format(sys.argv[1]))
else: print "usage: ..."

所以秒是命令行参数。或者,您可以使其具有交互性:

import os
secs = raw_input()
os.system("sudo rtcwake off -s {}".format(secs))

验证用户输入是否为整数:

try:    secs = int(secs)
except: print 'usage: '
于 2013-07-04T21:44:14.070 回答
1

使用ArgumentParser

parser = argparse.ArgumentParser(description='Shutdown your computer and turns it on after x seconds.')
parser.add_argument('delay', metavar='x', type=int,
                   help='The number of seconds the computer should be down.', default=100)
args = parsre.parse_args()
x = args.delay
于 2013-07-04T21:44:20.320 回答