繁体   English   中英

如何使用argparse将参数传递给python函数?

[英]How to pass parameters to python function using argparse?

我有一个foo.py使用argparse来获取main()函数的命令行参数。

""" foo.py """
import argparse

def main():
    parser = argparse.ArgumentParser(description='test')
    parser.add_argument('--all', '-a', action='store_true', help='all')
    args = parser.parse_args()

    if args.all:
        pass

if __name__ == '__main__':
    main()

我必须在另一个Python脚本bar.py上测试这个main()函数。 我的问题是如何在bar.py中传递参数。 我目前的解决方案是更改sys.argv。 寻找更好的解决方案。

""" bar.py """
import sys
import foo

if __name__ == '__main__':
    sys.argv.append('-a')
    foo.main()

您可以修改main函数以接收args列表。

""" foo.py """
import argparse

def main(passed_args=None):
    parser = argparse.ArgumentParser(description='test')
    parser.add_argument('--all', '-a', action='store_true', help='all')
    args = parser.parse_args(passed_args)

    if args.all:
        pass

if __name__ == '__main__':
    main()

""" bar.py """
import sys
import foo

if __name__ == '__main__':
    foo.main(["-a"])

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM