
Am 24.10.19 um 14:38 schrieb Hermann Riemann:
In https://docs.python.org/3/library/subprocess.html steht The run() function was added in Python 3.5; Die meisten meiner Python Programme wurden unter Python <= 3.4 entwickelt. ( os.system() ist die Nachfolge von system() in C)
Dann wird es Zeit, upzudaten. 3.0-3.4 sind schon End of life, PYthon 2.x stirbt am 1. Januar und 3.5 nächsten September.
- String.Konkatination ist brandgefährlich. wenn man einen externe
Prozess startet.
Konkatination findet so oder über format statt;
Nein. Wenn Du die Argumente einzeln übergibst, werden sie auch einzeln an die OS-Funtionen exec*() übergeben. das spart zudem den Aufwand, deine Kommandozeile wieder zu zerlegen, und den Shell-Aufruf.
und ist ausgeführt, bevor system oder subprocess aufgerufen wird.
Dann empfehle ch, Deinen Code hier zu ändern. Wie gesagt, das ist anfällig für Shell-Escape-Angrifffe.
- Du möchtest "os.makedirs()" verwenden.
Wenn ich Zeit habe, im Python3 Buch danach zu suchen. ( Python3 Ernesti Kaiser 5.Auflage 2017)
docs.python.org ist dein Freund