Как использовать python argparse с аргументами, отличными от sys.argv?
Я изучил всю документацию, и кажется, что нет никакого способа сделать это, но:
Есть ли способ использовать argparse с любым списком строк, а не только с sys.argv?
Вот моя проблема: у меня есть программа, которая выглядит примерно так:
# This file is program1.py
import argparse
def main(argv):
parser = argparse.ArgumentParser()
# Do some argument parsing
if __name__ == '__main__':
main(sys.argv)
Это прекрасно работает, когда эта программа вызывается прямо из командной строки. Тем не менее, у меня есть еще один сценарий Python, который запускает пакетные версии этого сценария с различными аргументами командной строки, которые я использую следующим образом:
import program1
arguments = ['arg1', 'arg2', 'arg3']
program1.main(arguments)
Я все еще хочу иметь возможность анализировать аргументы, но argparse автоматически использует sys.argv вместо аргументов, которые я ему даю. Есть ли способ передать список аргументов вместо использования sys.argv?