Ich muss Python-Skripte: Tester1.py und Tester2.py. Innerhalb Tester1 möchte ich von Zeit zu Zeit Tester2.py starten. Ich möchte auch Tester2.py einige Argumente übergeben. Im Moment sieht mein Code wie folgt aus:Python: Unterprozess funktioniert anders als Terminal. Was muss ich ändern?
Tester1:
subprocess.call(['python3 Tester2.py testString'])
Tester2:
def start():
message = sys.argv[1]
print(message)
start()
Nun mein Problem: Wenn ich mit meinem Terminal Tester2 wie 'python3 Tester2.py teststring' laufen Meine Konsole druckt testString aus. Aber wenn ich Tester1 starte und Tester1 versuche, Tester2 zu starten, bekomme ich einen IndexError: "Listenindex außerhalb des Bereichs".
Wie muss ich meinen Code ändern, damit alles funktioniert?
EDIT: niemmi sagte mir, dass ich meinen Code ändern:
subprocess.call(['python3', 'Tester2.py', 'testString'])
aber jetzt bekomme ich einen Keine solche Datei oder das Verzeichnis Fehler, obwohl beide Skripte im selben Verzeichnis befinden. Jemand weiß warum?
FYI, wenn Sie mit Python sind 3,5 oder höher, empfiehlt die Dokumentation, die run() - Funktion des Subprozesses zu verwenden: https://docs.python.org/3/library/subprocess.html – tschale