我会建议不要看sys.argv,特别是如果你已经使用CLI解析库。
Argprase有一堆强制执行要求的方法,但如果这些方法都不符合您的需求,则可以查看您的“参数”对象。
就个人而言,我建议不要在该文件的全局范围内运行函数,如parse_args()。相反,我会建议(至少),只是你包裹在一个名为主要功能已经得到了什么,然后调用“main()的”后“如果__name__ ==‘__main__’
Argparse例子:
如果'-M' 和 '-u' 是互斥的
parser = argparse.ArgumentParser()
group = parser.add_mutually_exclusive_group(required=True)
group.add_argument('-m')
group.add_argument('-u')
args = parser.parse_args() # will output a error message if '-m' or '-u' isn't supplied
如果特定ARG总是需要
parser = argparse.ArgumentParser()
parser.add_argument('-m', required=True) # must always give '-m'
或者只是在看 'ARGS' 对象
parser = argparse.ArgumentParser()
parser.add_argument('-m')
parser.add_argument('-u')
args = parser.parse_args()
if not (args.m or args.u):
sys.exit(1) # should exit non-zero on failures
主要包装例如:
import modules
class Program:
def A():
def B():
def C():
def main():
parser = argparse.ArgumentParser()
parser.add_argument(-m)
parser.add_argument(-u)
args = parser.parse_args()
if not (args.m or args.u):
sys.exit(1)
try:
Program()
except SomeException:
# handle it
pass # b/c I don't know what you need here
if __name__ == '__main__':
main()
正是我所需要的信息。谢谢! – gratchie