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.
2) 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.
3) 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 -- Schönen Gruß Hartmut Goebel Dipl.-Informatiker (univ), CISSP, CSSLP, ISO 27001 Lead Implementer Information Security Management, Security Governance, Secure Software Development Goebel Consult, Landshut http://www.goebel-consult.de Blog: https://www.goe-con.de/blog/nicht-pgp-ist-gescheitert-die-entwickler-haben-v... Kolumne: https://www.goe-con.de/hartmut-goebel/cissp-gefluester/2011-11-in-troja-nich...