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

发布于 2025-02-12 12:38:54 字数 828 浏览 0 评论 0原文

我有以下示例脚本,该脚本使用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或任何其他方法中以默认为单位吗?这样,每当用户调用标志时,执行后会显示消息?

I have following example script that uses 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()

When I call in the command line

python3 main.py -code compo1

I get the output as expected:

This is solver version1

What I would like is a generic message after every execution, eg,

This is solver version1
INFO [solver compo1.py] completed success

I know that using another print would solve that, but can it be given as a default in parse.add_arguments or any other way ? such that whenever a flag is called by the user a message is displayed after execution ?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

薔薇婲 2025-02-19 12:38:54

您可以使用记录器打印来进行日志给定参数:

for arg, value in sorted(vars(args).items()):
    logging.info("Argument %s: %r", arg, value)

请参见 log grou在python

从Command-line argparse-logging

You can use the logger instead print to log given arguments:

for arg, value in sorted(vars(args).items()):
    logging.info("Argument %s: %r", arg, value)

See Log the values of argparse in python.

Not related but useful to set the log-level from command-line argparse-logging.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文