【Python】【lib】【getopt】サンプルコード

サンプルコード

getopt_1.py

#!/usr/bin/env python3
# -*- coding: utf-8 -*- 
import  getopt
import  sys

OPTION_FORMAT="ho:v"    # サポートするオプション

def usage():
    sys.stderr.write('Usage: {0} "{1}"'.format(sys.argv[0], OPTION_FORMAT))

def main():
    try:
        opts, args = getopt.getopt(sys.argv[1:], OPTION_FORMAT, ["help", "output="])
    except getopt.GetoptError as err:
        # サポート外のオプション指定時はここに進む
        # オプション形式間違い ( -o の後に引数なしの場合など)
        print("0: {0}".format(sys.argv[0]))
        print(err)
        usage()
        sys.exit(2)

    # 引数無しの場合はここに進む
    output = None
    verbose = False

    for o, a in opts:
        if o == "-v":
            verbose = True
        elif o in ("-h", "--help"):
            usage()
            sys.exit(0)
        elif o in ("-o", "--output"):
            output = a
        else:
            assert False, "unhandled option"

    if verbose == True:
        print("verbose mode")
    if output:
        print("output mode")
    if verbose != True and not output:
        print("option is nothing")

    print(sys.argv) # 実行ファイルと引数をダンプする

if __name__ == '__main__':

    main()