gerold hat geschrieben:Ist das ein Problem?
Code: Alles auswählen
>>> import sys
>>> if sys.platform.startswith("win"):
... print "Windows"
... else:
... print "Linux und Co"
...
Windows
>>>
(man könnte je nach Bedarf und Einsatzzweck noch weitere Plattformen in die Auswahl mit einbeziehen)
Klar, das geht schon. Aber weißt du wie der Befehl fürs Löschen unter Plan 9, Inferno, und $IRGENDEIN_EXOTISCHES_OS_AUF_DEM_PYTHON_LÄUFT ist? Du kannst ja für die bekannten Platformen so etwas anbieten, aber generell würde ich das als "Unschön" bezeichnen. Du nutzt ja sicher auch Pythons Stdlib, obwohl man unter Windows einige Sachen auch über `ctypes` und die MSVCRT lösen kann.
Der Code ist optimalerweise für alle Plattformen gleich. Das `shutil.rmtree` nicht sonderlich schnell ist mag ja sein, aber da wäre es besser dem Interpreter eine Implementation zu geben, die besser ist. Davon profitieren alle. Klar, das klingt nun etwas arg "abgehoben" und die Lösung Subprozesse zu starten um Dinge zu erledigen geht ja auch, aber meines Ermessens ist sie einfach nicht schön.
gerold hat geschrieben:Aber sicher doch um schnell und einfach ein spezielles Problem zu lösen. Die ganze Linux-/Unix-Shellprogrammierung baut darauf auf, kleine Dienstprogramme gezielt einzusetzen. Und das funktioniert immer noch sehr gut.
Das dachten sich auch die Entwickler von Git. Das ist schnell und eine Mischung aus C, Perl und bash die unter Windows nicht richtig lauffähig ist. Daran ist nicht nur der C-Teil schuld.