Я по всей документации, и кажется, что нет способа сделать это, но:
Есть ли способ использовать 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 script, который запускает пакетные версии этого script с разными аргументами командной строки, которые я использую следующим образом:
import program1
arguments = ['arg1', 'arg2', 'arg3']
program1.main(arguments)
Я все еще хочу иметь возможность анализировать аргументы, но argparse автоматически по умолчанию использует sys.argv вместо аргументов, которые я им даю. Есть ли способ передать список аргументов вместо использования sys.argv?