Am 24.10.19 um 11:14 schrieb Hartmut Goebel:
Am 24.10.19 um 11:04 schrieb Hermann Riemann:
Um in Python bei bei Suche mit grep -rp pyc Dateien nicht zu durchsuchen, verwende ich symbolische links. ( das Gleiche um die von *emacs erzeugte *~ nicht auch zu durchsuchen.)
Wenn Du deinen Dateien mit git verwaltetes, dann ist git grep Dein Freund.
Ich verwende kein git. Kommandobefehle auf Konsole wie ls -l oder etwas os.walk() unter Python3 (open ..) gelegentlich auch über C Programme.
if not os.path.exists(ordnername): os.system("mkdir "+ordnername) verwende ich des öfteren.
Fröstel!
1) os.system sollte man nicht versenden, sondern subprocess.run()
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)
2) String.Konkatination ist brandgefährlich. wenn man einen externe Prozess startet.
Konkatination findet so oder über format statt; und ist ausgeführt, bevor system oder subprocess aufgerufen wird.
3) Du möchtest "os.makedirs()" verwenden.
Wenn ich Zeit habe, im Python3 Buch danach zu suchen. ( Python3 Ernesti Kaiser 5.Auflage 2017) -- http://www.hermann-riemann.de
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...
Am 24.10.19 um 14:52 schrieb Hartmut Goebel:
PYthon 2.x stirbt am 1. Januar
Dies ist so nicht ganz richtig: 1. RHEL (und andere Linux-Distributionen) unterstützen Python 2 noch einige Jahre. "Maintenance Support 2 Phase" für RHEL 7 auf x86_64 endet erst im Juni 2024. 2. Mich wundert, dass regelmäßig auch pypy ignoriert wird: > How long will PyPy support Python2? > Since RPython is built on top of Python2 and that is extremely unlikely > to change, the Python2 version of PyPy will be around “forever”, i.e. as > long as PyPy itself is around. http://doc.pypy.org/en/latest/faq.html#how-long-will-pypy-support-python2 3. Außerdem gibt es noch Community-Projekte wie z.B. Tauthon: https://github.com/naftaliharris/tauthon Natürlich ist ein Umstieg auf Python 3 oft eine gute Idee (meine persönlichen Favoriten sind "yield from", pathlib und fstrings), aber die Deadline "1. Januar 2020" scheint mir nicht so absolut wie oft behauptet. Zumal PyPy's Statement ja schon zeigt, wie problematisch der Umstieg für große Code-Basen sein kann. Ich gehe davon aus, dass ich bei Kundenprojekten auch in den nächsten Jahren noch Python 2-Code schreiben muss (die meisten Projekte sind migriert, aber es gibt eben aus verschiedenen Gründen immer noch "Altlasten").
3) Du möchtest "os.makedirs()" verwenden.
Hier empfehle ich eher "Path.mkdir(..., parents=True)" bzw. (unter Python 2) den pathlib2 backport. Felix
Hallo, liebe Internet-Partner, Am 24.10.2019 schrieb Hartmut Goebel: "Dann wird es Zeit, upzudaten. 3.0-3.4 sind schon End of life, PYthon 2. stirbt am 1. Januar und 3.5 nächsten September.“ Warum noch mit den alten und teilweise überholten Versionen arbeiten? Nachdem Microsoft WINDOS-XP gestrichen hatte, war ich gezwungen, alle meine Programme umzuschreiben. Ich habe „python3.6.2“ von PYTHON.ORG <http://python.org/> heruntergeladen und verwende heute „python3.7.2“. Außerdem haben mir die Bücher: „Einstieg in Python“ von Thomas Theis und „Python 3“ von Johannes Ernesti und Peter Kaiser sehr geholfen. Da gibt es keine Probleme mehr. Wer ein Beispiel lesen und ausprobieren möchte, kann das folgende Programm mit Erläuterungen herunterladen: www.telecypher.net/teleCypher-Extra-zip <http://www.telecypher.net/teleCypher-Extra-zip> Mit internetten Grüßen Ernst Erich Schnoor, München (eschnoor@multi-matrix.de <mailto:eschnoor@multi-matrix.de>)
Im Nachgang: Liebe Internet-Partner, Es muss natürlich heissen: www.telecypher.net/teleCypher-Extra.zip <http://www.telecypher.net/teleCypher-Extra.zip> "Mea culpa, mea culpa maxima“ Erich Schnoor __________________________________________
Am 25.10.2019 um 12:27 schrieb Erich Schnoor <eschnoor@multi-matrix.de>:
Hallo, liebe Internet-Partner,
Am 24.10.2019 schrieb Hartmut Goebel:
"Dann wird es Zeit, upzudaten. 3.0-3.4 sind schon End of life, PYthon 2. stirbt am 1. Januar und 3.5 nächsten September.“
Warum noch mit den alten und teilweise überholten Versionen arbeiten?
Nachdem Microsoft WINDOS-XP gestrichen hatte, war ich gezwungen, alle meine Programme umzuschreiben. Ich habe „python3.6.2“ von PYTHON.ORG <http://python.org/> heruntergeladen und verwende heute „python3.7.2“. Außerdem haben mir die Bücher: „Einstieg in Python“ von Thomas Theis und „Python 3“ von Johannes Ernesti und Peter Kaiser sehr geholfen.
Da gibt es keine Probleme mehr. Wer ein Beispiel lesen und ausprobieren möchte, kann das folgende Programm mit Erläuterungen herunterladen:
www.telecypher.net/teleCypher-Extra-zip <http://www.telecypher.net/teleCypher-Extra-zip>
Mit internetten Grüßen Ernst Erich Schnoor, München (eschnoor@multi-matrix.de <mailto:eschnoor@multi-matrix.de>)
participants (4)
-
Erich Schnoor
-
Felix Schwarz
-
Hartmut Goebel
-
Hermann Riemann