Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]
Groups > de.comp.lang.python > #5554 > unrolled thread
| Started by | Thomas Güttler <guettliml@thomas-guettler.de> |
|---|---|
| First post | 2019-10-24 09:56 +0200 |
| Last post | 2019-10-25 12:27 +0200 |
| Articles | 9 — 5 participants |
Back to article view | Back to de.comp.lang.python
This discussion starts older than the indexed window; earlier articles aren't shown. The article labeled Started by
below is the oldest one visible, not the original post.
[Python-de] Programming-Guidelines Thomas Güttler <guettliml@thomas-guettler.de> - 2019-10-24 09:56 +0200
Re: [Python-de] Programming-Guidelines Hermann Riemann <nospam.ng@hermann-riemann.de> - 2019-10-24 11:04 +0200
Re: [Python-de] Programming-Guidelines Hartmut Goebel <h.goebel@goebel-consult.de> - 2019-10-24 11:14 +0200
Re: [Python-de] Programming-Guidelines Hermann Riemann <nospam.ng@hermann-riemann.de> - 2019-10-24 14:38 +0200
Re: [Python-de] Programming-Guidelines Hartmut Goebel <h.goebel@goebel-consult.de> - 2019-10-24 14:52 +0200
Re: [Python-de] Programming-Guidelines Hermann Riemann <nospam.ng@hermann-riemann.de> - 2019-10-24 17:56 +0200
Re: [Python-de] Programming-Guidelines Felix Schwarz <felix.schwarz@web.de> - 2019-10-25 10:46 +0200
Re: [Python-de] Programming-Guidelines Erich Schnoor <eschnoor@multi-matrix.de> - 2019-10-25 12:34 +0200
Re: [Python-de] Programming-Guidelines Erich Schnoor <eschnoor@multi-matrix.de> - 2019-10-25 12:27 +0200
| From | Thomas Güttler <guettliml@thomas-guettler.de> |
|---|---|
| Date | 2019-10-24 09:56 +0200 |
| Subject | [Python-de] Programming-Guidelines |
| Message-ID | <mailman.138.1571904149.32318.python-de@python.org> |
Hallo,
seit zwei Jahren pflege ich meine Programming-Guidelines, damit
ich mich selbst bessere daran halte :-)
Falls es jemanden interessiert:
https://github.com/guettli/programming-guidelines
Feedback ist willkommen.
Gruß,
Thomas
--
Thomas Guettler http://www.thomas-guettler.de/
I am looking for feedback: https://github.com/guettli/programming-guidelines
[toc] | [next] | [standalone]
| From | Hermann Riemann <nospam.ng@hermann-riemann.de> |
|---|---|
| Date | 2019-10-24 11:04 +0200 |
| Message-ID | <h1d7o7F8encU1@mid.individual.net> |
| In reply to | #5554 |
Am 24.10.19 um 09:56 schrieb Thomas Güttler:
> seit zwei Jahren pflege ich meine Programming-Guidelines, damit
> ich mich selbst bessere daran halte :-)
> Falls es jemanden interessiert:
> https://github.com/guettli/programming-guidelines
>
> Feedback ist willkommen.
Ich sammele nützlicher Erfahrungen.
Datenbanken machen nach meiner Erfahrung bloß Ärger.
csv-Dateien sind nützlich schnell
und notfalls mit vi oder emacs leicht editierbar.
IDE's sind unhandlich
( außer cc make ..)
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.)
Für Python ist als Editor auch kate (mit ein paar Einschränkungen)
gut geeignet,
Wenn ich GUI brauche,
bastele ich mir ein Muster in html
die ich mit dem html Modul nachbearbeite.
Eventuell verwende ich CGI.
Programmiersprachen:
Python für den Standardgebrauch
C für rechenintensive Spezialfälle wie Pixelbearbeitung
JavasScript für Spezialfälle in html-Seiten
clisp ( wegen eval) für automatische Programmierung
if not os.path.exists(ordnername):
os.system("mkdir "+ordnername)
verwende ich des öfteren.
wenn polling dann mit sleep.
Hermann
der meint bei Python ( und C ) sei eine Einrückung
von 3 besser als eine mit 4
--
http://www.hermann-riemann.de
[toc] | [prev] | [next] | [standalone]
| From | Hartmut Goebel <h.goebel@goebel-consult.de> |
|---|---|
| Date | 2019-10-24 11:14 +0200 |
| Message-ID | <mailman.139.1571908487.32318.python-de@python.org> |
| In reply to | #5555 |
[Multipart message — attachments visible in raw view] — view raw
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.
> 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()
2) String.Konkatination ist brandgefährlich. wenn man einen externe
Prozess startet. das ist ein Einfallstor für Shell-Escape-Angriffe.
3) Du möchtest "os.makedirs()" verwenden.
--
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/gemeinsam-die-gala-zur-verleihung-der-der-bigbrotherawards-gucken
Kolumne:
https://www.goe-con.de/hartmut-goebel/cissp-gefluester/2012-09-steht-ein-manta-fahrer-vor-der-uni
[toc] | [prev] | [next] | [standalone]
| From | Hermann Riemann <nospam.ng@hermann-riemann.de> |
|---|---|
| Date | 2019-10-24 14:38 +0200 |
| Message-ID | <h1dkabFb0soU1@mid.individual.net> |
| In reply to | #5556 |
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
[toc] | [prev] | [next] | [standalone]
| From | Hartmut Goebel <h.goebel@goebel-consult.de> |
|---|---|
| Date | 2019-10-24 14:52 +0200 |
| Message-ID | <mailman.142.1571921573.32318.python-de@python.org> |
| In reply to | #5557 |
[Multipart message — attachments visible in raw view] — view raw
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-versagt Kolumne: https://www.goe-con.de/hartmut-goebel/cissp-gefluester/2011-11-in-troja-nichts-neues
[toc] | [prev] | [next] | [standalone]
| From | Hermann Riemann <nospam.ng@hermann-riemann.de> |
|---|---|
| Date | 2019-10-24 17:56 +0200 |
| Message-ID | <h1dvtvFdetjU1@mid.individual.net> |
| In reply to | #5558 |
Am 24.10.19 um 14:52 schrieb Hartmut Goebel:
> 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.
Mein debian hat noch Python 3.5
Und SuSE hat bist 12.3 nur Python 3.4
> Wenn Du die Argumente einzeln übergibst, werden sie auch einzeln
> an die OS-Funtionen exec*() übergeben.
Bei
os.system("mkdir "+ordnername)
wird erst zusammengefügt und das Ergebnis als
ein Argument übergeben.
Bei print( "mkdir",ordnername) wäre das anders.
>> 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.
Was ist das? ( Ich verwende nur Linux)
>> Wenn ich Zeit habe, im Python3 Buch danach zu suchen.
>> ( Python3 Ernesti Kaiser 5.Auflage 2017)
> docs.python.org ist dein Freund
Programmieren tue ich fast immer offline.
Und (deutsches) Buch lesen verstehe ich schneller.
Hermann
der zeitweise seine Python Kenntnisse aus diesem Buch erweitert,
obwohl er ca 9.2006 mit Python Programmierung
(vorher weit überwiegend ( ANSI ) C ) angefangen hat.
--
http://www.hermann-riemann.de
[toc] | [prev] | [next] | [standalone]
| From | Felix Schwarz <felix.schwarz@web.de> |
|---|---|
| Date | 2019-10-25 10:46 +0200 |
| Message-ID | <mailman.156.1571993199.32318.python-de@python.org> |
| In reply to | #5557 |
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
[toc] | [prev] | [next] | [standalone]
| From | Erich Schnoor <eschnoor@multi-matrix.de> |
|---|---|
| Date | 2019-10-25 12:34 +0200 |
| Message-ID | <mailman.158.1571999647.32318.python-de@python.org> |
| In reply to | #5557 |
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>)
>
>
>
[toc] | [prev] | [next] | [standalone]
| From | Erich Schnoor <eschnoor@multi-matrix.de> |
|---|---|
| Date | 2019-10-25 12:27 +0200 |
| Message-ID | <mailman.159.1571999799.32318.python-de@python.org> |
| In reply to | #5557 |
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>)
[toc] | [prev] | [standalone]
Back to top | Article view | de.comp.lang.python
csiph-web