如何指定某些命令行参数在Python中是必需的?

2024-05-14 08:25:27 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在用Python编写一个接受命令行参数的程序。我正在用getopt解析它们(尽管我选择的getopt不是天主教婚姻)。我非常愿意使用其他图书馆)。是否有任何方法可以指定必须给定特定的参数或必须手动确保给定所有参数?

编辑:我将选项的所有实例更改为参数以响应公众的强烈抗议。不要说我对帮助我的人没有反应


Tags: 实例方法程序编辑参数图书馆选项手动
2条回答

最简单的方法就是自己动手。一、 e

found_f = False
try:
    opts, args = getopt.getopt(sys.argv[1:], "ho:v", ["help", "output="])
except getopt.GetoptError, err:
    print str(err)
    usage()
    sys.exit(2)
for o, a in opts:
    if o == '-f':
      process_f()
      found_f = True
    elif ...
if not found_f:
    print "-f was not given"
    usage()
    sys.exit(2)

至于我,我更喜欢使用optparse module,它非常强大,例如,它可以通过给定的选项自动生成-h消息:

from optparse import OptionParser

parser = OptionParser()
parser.add_option("-f", "--file", dest="filename",
                  help="write report to FILE", metavar="FILE")
parser.add_option("-q", "--quiet",
                  action="store_false", dest="verbose", default=True,
                  help="don't print status messages to stdout")

(options, args) = parser.parse_args()

您应该手动检查是否给出了所有参数:

if len(args) != 1:
        parser.error("incorrect number of arguments")

强制执行选项对我来说似乎很奇怪-它们被称为“选项”并非毫无意义。。。

相关问题 更多 >

    热门问题