Python argparse比较输入和默认文件名和类型是否相同?


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

你应该能够使用它来比较实际参数和默认值。

相关内容

  • 没有找到相关文章

最新更新