是否可以傳入自定義參數列表?是否有可能使用argparse,但傳入一個自定義的argv而不是使用sys.argv?
更多的是出於對現實生活用例的好奇心,但是,例如,我可能想在將所有參數轉換爲小寫之前讓argparse完成其工作。
是否可以傳入自定義參數列表?是否有可能使用argparse,但傳入一個自定義的argv而不是使用sys.argv?
更多的是出於對現實生活用例的好奇心,但是,例如,我可能想在將所有參數轉換爲小寫之前讓argparse完成其工作。
Yes。只要通過你想要的名單parse_args
。
從文檔中的例子:
>>> parser.parse_args(['--sum', '7', '-1', '42'])
Namespace(accumulate=<built-in function sum>, integers=[7, -1, 42])
parse_args
使用sys.argv[1:]
,如果你不給它一個list參數。您可以自己加載sys.argv
,然後對其進行修改。如果在原地進行修改,它仍然可以隱式傳遞。
import sys
import argparse
parser = ...
# modify sys.argv inplace
sys.argv[1:] = [x.lower() for x in sys.argv[1:]]
args = parser.parse_args() # pass it implicitily
# or pass it explicitly
args = parser.parse_args(sys.argv[1:])
[是](https://docs.python.org/3/library/argparse.html#parsing-arguments) – NightShadeQueen