我有以下示例脚本,使用argparse
import os
import numpy
import argparse
def main():
parser = argparse.ArgumentParser()
parser.add_argument('-C','--code',type=str, help='Choose solver')
args = parser.parse_args()
if args.code == 'compo1':
print('This is solver version1')
elif args.code == 'compo2':
print('This is solver version2')
if __name__=='__main__':
main()
当我调用命令行
python3 main.py -code compo1
我得到了预期的输出:
This is solver version1
我想要的是每次执行后的通用消息,例如,
This is solver version1
INFO [solver compo1.py] completed success
我知道使用另一个print
会解决这个问题,但它可以作为parse.add_arguments
的默认值或任何其他方式给出吗?这样每当国旗被称为由用户执行后就会显示一个消息?
您可以使用logger代替print来记录给定的参数:
for arg, value in sorted(vars(args).items()):
logging.info("Argument %s: %r", arg, value)
请参见记录python中argparse的值。
从命令行argparse-logging设置日志级别不相关,但很有用。