Optional command line arguments

前端 未结 1 1556
深忆病人
深忆病人 2021-01-12 09:21

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

I am using Spyder and have put -h -s -p -o as arguments, but I\'m not sure how to

相关标签:
1条回答
  • 2021-01-12 09:34

    This is a simple tutorial dealing with argpase.

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

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

    My tutorial script:

    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()
    

    Now, in your terminal or with Spyder:

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

    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
    

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

    $ python3 my_script.py -h
    

    Output:

    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
    
    0 讨论(0)
提交回复
热议问题