0

我是 Python 的新手。我想编写一个在 Linux 上运行的脚本。要测试用户是否输入所有脚本参数:

  • 如果用户类型:myscript =>print "Usage: myscript [Dir] [Old] [New]"
  • 如果用户类型:myscript Dir =>print "Please enter Old and New"
  • 如果用户类型:myscript Dir Old =>print "Please enter New"
  • 如果用户键入所有必需的参数,则执行 main()。

如何编写 myscript?

4

3 回答 3

7
#! /usr/bin/python3.2

import sys

if __name__ == '__main__':
    if len (sys.argv) < 4:
        print ( ['Usage: myscript [Dir] [Old] [New]',
            'Please enter Old and New',
            'Please enter New'] [len (sys.argv) - 1] )

或者你可以使用 argparse。这不会满足您在问题中的要求,但希望能安抚 JF Sebastian。

#! /usr/bin/python3.2

import argparse

if __name__ == '__main__':
    p = argparse.ArgumentParser (description = 'What your program does.')
    p.add_argument ('dir', metavar = 'dir', type = str, help = 'The directory')
    p.add_argument ('old', metavar = 'old', type = str, help = 'The old value')
    p.add_argument ('new', metavar = 'new', type = str, help = 'The new value')
    args = p.parse_args ()
于 2013-01-10T04:19:09.283 回答
2

只需检查 的值len(sys.argv)。请注意,第一个参数将是 python 文件名本身。

像这样:

import sys

argc = len(sys.argv)

if argc < 2:
    print "Usage: myscript [Dir] [Old] [New]"
    sys.exit();
elif argc < 3:
    print "Please enter Old and New"
    sys.exit();
elif argc < 4:
    print "Please enter New"
    sys.exit();

main()
于 2013-01-10T04:14:26.367 回答
0

运行脚本时传递的所有参数都将放在sys.argv. 你必须import sys先。然后按照您的意愿进行论证。您可能会考虑计算您必须决定要做什么的参数。请注意,第一个参数始终是脚本的名称。

于 2013-01-10T04:14:11.247 回答