1. ホーム
  2. python

引数を反復処理する方法

2023-08-04 22:02:14

質問

このようなスクリプトがあります。

import argparse

parser = argparse.ArgumentParser(
                description='Text file conversion.'
                )
parser.add_argument("inputfile",   help="file to process", type=str)
parser.add_argument("-o", "--out", default="output.txt",
                    help="output name")
parser.add_argument("-t", "--type", default="detailed",
                    help="Type of processing")

args = parser.parse_args()

for arg in args:
    print(arg)

しかし、それは動作しません。私はエラーを取得します。

TypeError: 'Namespace' object is not iterable

引数とその値を繰り返し処理する方法は?

どのように解決するのですか?

名前空間オブジェクトを反復処理する場合は、'vars'を追加してください。

 for arg in vars(args):
     print arg, getattr(args, arg)