小学理科717236 views
高校倫理1433119 views
高校物理158224 views
中学数学621382 views
いろは2986023 views
中学英語808712 views
英語607877 views
中学理科1626207 views
中学社会667106 views
世界の国560595 views
Help
Tools

English

argparse の Namespace を辞書型にして引数名と値を for でとる:Python

import argparse

parser = argparse.ArgumentParser()

parser.add_argument('name')
parser.add_argument('--age', '-a', type=int)

args = parser.parse_args()

data = args.__dict__

print(type(data))
print(data)

for name, value in data.items():
	print(f'{name} ---> {value}')

このコードを start.py に保存し、実行すると

python start.py Alice --age 28

<class 'dict'>
{'name': 'Alice', 'age': 28}
name ---> Alice
age ---> 28

となります。args は Namespace で、Namespace はドットで値をとれます。一部の統合開発環境は定義した引数名をチェックしないため、下のコードを書いたとき、args にドットを続けても name は候補にあらわれません。

import argparse

parser = argparse.ArgumentParser()

parser.add_argument('name')
parser.add_argument('--age', '-a', type=int)

args = parser.parse_args()

name = args.name
age = args.age

print(name)
print(age)