如何在argparse中执行命令行参数后显示消息



我有以下示例脚本,使用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设置日志级别不相关,但很有用。

最新更新