簡體   English   中英

如何將未定義數量的可選參數/參數傳遞給 python 3 腳本

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM