当与两个连接的python3脚本一起使用时,argparse发生冲突 [英] argparse conflict when used with two connected python3 scripts
本文介绍了当与两个连接的python3脚本一起使用时,argparse发生冲突的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
Main_脚本
parser = argparse.ArgumentParser(add_help=True)
parser.add_argument('-p', '--print_positive_results', action='store_true')
args = parser.parse_args()
PRINT_POSITIVE = args.print_positive_results
#I then use rhi global variable PRINT_POSITIVE
子脚本
import argparse
parser = argparse.ArgumentParser(add_help=True)
parser.add_argument('-d', '--debug', action='store_true')
args = parser.parse_args()
当我调用python MAIN_SCRIPT.py -p
时,我得到这个
usage: test_grammar.py [-h] [-d]
test_grammar.py: error: unrecognized arguments: -p
DEBUG = False
if (args.debug ):
DEBUG = True
推荐答案
看起来像是将主脚本中的命令行参数传递给子脚本。
您可以尝试(也许应该)将argparse内容包装到:
if __name__ == '__main__':
<argparse stuff>
在这种情况下,只有从命令行调用脚本时才会调用代码。真正的代码可以外包到一个函数中。这样,您可以通过argparse从命令行使用该脚本,并且只有在从另一个脚本调用该函数时才从该脚本导入该函数:
主脚本:
import argparse
import subscript
if __name__ == '__main__':
parser = argparse.ArgumentParser(add_help=True)
parser.add_argument('-p', '--print_positive_results', action='store_true')
args = parser.parse_args()
...
subscript.your_function(<whatever your args are>)
...
子脚本:
import argparse
def your_function(<your args>):
<your code>
if __name__ == '__main__':
parser = argparse.ArgumentParser(add_help=True)
parser.add_argument('-d', '--debug', action='store_true')
args = parser.parse_args()
your_function(<whatever your args are>)
...
这篇关于当与两个连接的python3脚本一起使用时,argparse发生冲突的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文