如何使用argparse将参数传递给python函数?
我有一个使用argparse的foo.py来获取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
函数来接收参数列表。
""" foo.py """
import argparse
def main(passed_args=None):
parser = argparse.ArgumentParser(description='test')
parser.add_argument('--all', '-a', action='store_true', help='all')
if passed_args:
args = parser.parse_args(passed_args)
else:
args = parser.parse_args()
if args.all:
pass
if __name__ == '__main__':
main()
""" bar.py """
import sys
import foo
if __name__ == '__main__':
foo.main(["-a"])
链接地址: http://www.djcxy.com/p/9303.html
上一篇: How to pass parameters to python function using argparse?