Wie verwende ich Python Argparse mit anderen Argumenten als sys.argv?

Ich habe die gesamte Dokumentation durchgesehen und es scheint, als gäbe es keine Möglichkeit, dies zu tun, aber:

Gibt es eine Möglichkeit, argparse mit einer beliebigen Liste von Zeichenfolgen zu verwenden, anstatt nur mit sys.argv?

Hier ist mein Problem: Ich habe ein Programm, das ungefähr so aussieht:

# This file is program1.py
import argparse

def main(argv):
    parser = argparse.ArgumentParser()
    # Do some argument parsing

if __name__ == '__main__':
    main(sys.argv)

Dies funktioniert einwandfrei, wenn dieses Programm direkt über die Befehlszeile aufgerufen wird. Ich habe jedoch ein anderes Python-Skript, das Stapelversionen dieses Skripts mit verschiedenen Befehlszeilenargumenten ausführt, die ich folgendermaßen verwende:

import program1

arguments = ['arg1', 'arg2', 'arg3']
program1.main(arguments)

Ich möchte immer noch in der Lage sein, die Argumente zu analysieren, aber argparse verwendet standardmäßig automatisch sys.argv anstelle der Argumente, die ich ihm gebe. Gibt es eine Möglichkeit, die Argumentliste zu übergeben, anstatt sys.argv zu verwenden?

Antworten auf die Frage(4)

Ihre Antwort auf die Frage