![](/img/trans.png)
[英]How to pass optional python arguments to sub-functions with optional arguments
[英]How to pass a undefined number of optional parameters/arguments to a python 3 script
我需要在執行 python 腳本時傳遞 3 個強制參數,但程序也可以接收未定義數量的參數,例如總是大於 3
my_prgoram.py 1 2 3 4 5 6
並且
my_prgoram.py 1 2 3 4
到目前為止,我正在嘗試使用argparse
模塊執行此操作
import argparse
if __name__ == '__main__':
# Initialize the parser
parser = argparse.ArgumentParser(
description="how to run the script: [my_prgoram.py 3 4 5 7 [n]... ]
)
# Add the positional parameter
parser.add_argument('first', help="number of cards")
parser.add_argument('cvaluen1', type=int, help="the first value")
parser.add_argument('cvaluen2', type=int, help="the second value")
# Parse the arguments
arguments = parser.parse_args()
# Finally print the passed string
print(arguments.first)
print(arguments.cvaluen1)
print(arguments.cvaluen2)
使用argv
代替argparse
可能會更容易,並且它也將更加可移植:
import sys
num_args = len(sys.argv)
if num_args >= 4:
first_arg = sys.argv[1]
second_arg = sys.argv[2]
third_arg = sys.argv[3]
if num_args > 4:
other_args = [arg for arg in args[4:]]
ArgumentParser.parse_known_args()可能會有所幫助:
>>> parser.parse_known_args('1 2 3 4 5 6'.split(' '))
(Namespace(cvaluen1=2, cvaluen2=3, first='1'), ['4', '5', '6'])
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.