我會建議不要看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