可选的命令行参数 [英] Optional command line arguments

查看:118
本文介绍了可选的命令行参数的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

给出这样的代码,我实际上如何在运行选项中设置文件?

Given code like this, how do I actually set a file in the run options?

我正在使用Spyder,并已将-h -s -p -o作为参数,但是我不确定如何为-o选项指定命名文件.

I am using Spyder and have put -h -s -p -o as arguments, but I'm not sure how to specify a named file for the -o option.

class CommandLine:
    def __init__(self):
        opts, args = getopt.getopt(sys.argv[1:],'hspw:o:')
        opts = dict(opts)

        if '-o' in opts:
            self.outfile = opts['-o']
        else:
            self.outfile = None

推荐答案

这是处理但是首先,我建议您阅读官方文档,您希望在使用argparse模块时拥有更多控制权.

But first of all, i recommend you to read the official documentation if you want to have more control when using argparse module.

如果您想将参数传递给Spyder,我也会建议 @Carlos Cordoba 的建议.来查看此 answer .

Also if you want to pass arguments to Spyder, i would recommend the answer of @Carlos Cordoba who suggested to see this answer.

我的教程脚本:

import argparse

class CommandLine:
    def __init__(self):
        parser = argparse.ArgumentParser(description = "Description for my parser")
        parser.add_argument("-H", "--Help", help = "Example: Help argument", required = False, default = "")
        parser.add_argument("-s", "--save", help = "Example: Save argument", required = False, default = "")
        parser.add_argument("-p", "--print", help = "Example: Print argument", required = False, default = "")
        parser.add_argument("-o", "--output", help = "Example: Output argument", required = False, default = "")

        argument = parser.parse_args()
        status = False

        if argument.Help:
            print("You have used '-H' or '--Help' with argument: {0}".format(argument.Help))
            status = True
        if argument.save:
            print("You have used '-s' or '--save' with argument: {0}".format(argument.save))
            status = True
        if argument.print:
            print("You have used '-p' or '--print' with argument: {0}".format(argument.print))
            status = True
        if argument.output:
            print("You have used '-o' or '--output' with argument: {0}".format(argument.output))
            status = True
        if not status:
            print("Maybe you want to use -H or -s or -p or -p as arguments ?") 


if __name__ == '__main__':
    app = CommandLine()

现在,在您的终端中或使用 Spyder :

Now, in your terminal or with Spyder:

$ python3 my_script.py -H Help -s Save -p Print -o Output

输出:

You have used '-H' or '--Help' with argument: Help
You have used '-s' or '--save' with argument: Save
You have used '-p' or '--print' with argument: Print
You have used '-o' or '--output' with argument: Output

当您使用-h--help作为参数时,您将获得以下输出:

And when you use -h or --help as argument you'll have this output:

$ python3 my_script.py -h

输出:

usage: my_script.py [-h] [-H HELP] [-s SAVE] [-p PRINT] [-o OUTPUT]

Description for my parser

optional arguments:
  -h, --help            show this help message and exit
  -H HELP, --Help HELP  Example: Help argument
  -s SAVE, --save SAVE  Example: Save argument
  -p PRINT, --print PRINT
                        Example: Print argument
  -o OUTPUT, --output OUTPUT
                        Example: Output argument

这篇关于可选的命令行参数的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆