web-dev-qa-db-ja.com

オプションのコマンドライン引数

このようなコードがある場合、実行オプションで実際にファイルを設定するにはどうすればよいですか?

Spyderを使用していて、引数として-h -s -p -oを指定しましたが、-oオプションに名前付きファイルを指定する方法がわかりません。

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
7
user1893110

これは argpase を扱う簡単なチュートリアルです。

しかし、まず最初に、argparseモジュールを使用するときにさらに制御したい場合は、 公式ドキュメント を読むことをお勧めします。

また、Spyderに引数を渡したい場合は、これを見ることを提案した @ Carlos Cordoba の回答をお勧めします 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

$ 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を使用すると、次の出力が得られます。

$ 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
10
Chiheb Nexus