在python中定义linux命令的命令行参数

时间:2013-07-04 21:36:46

标签: python linux command-line

首先,抱歉标题不精确(如果有人有更好的建议如何命名这个帖子随时告诉我),我的问题就不那么复杂了。

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

import os

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

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

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

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

2 个答案:

答案 0 :(得分: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: '

答案 1 :(得分: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