def check_file(user_name,default_name):
while True:
try:
#### check user name matches the default name
if ('%s'%(user_name)) == '%s'%(default_name):
print("file matches")
break
except:
print("wrong file.")
continue
if __name__ == '__main__':
parser = argparse.ArgumentParser()
parser.add_argument('-k1',type=argparse.FileType('r'),default='k1file.txt',required=True,
help='file input')
parser.add_argument('-k2',type=argparse.FileType('r'),default='k2file.txt',required=True,
help='file input')
args = parser.parse_args()
check_file(args.k1,args.get_default('k1'))
check_file(args.k2,args.get_default('k2'))
当前输出:
AttributeError: 'Namespace' object has no attribute 'k1'
add_argument
方法返回刚刚添加的Action
。其中包含实参定义的详细信息——包括默认值。
import argparse
parser = argparse.ArgumentParser()
arg_action = parser.add_argument('-f', default='file')
print(arg_action.default)
打印:
file
你应该能够使用它来比较实际参数和默认值。