abgdf hat geschrieben:os.system() ist manchmal schon sehr praktisch.
Im Gegenteil, diese Funktion ist äußerst unpraktisch. Man kann noch nicht mal auf portable Weise Fehler abfangen, weil der Rückgabe von os.system von der darunter liegenden libc anhängt, die je nach System unterschiedlich ist. Meines Wissens ist system() zwar POSIX-Bestandteil, der Rückgabewert dieser Funktion ist allerdings nicht spezifiziert, so dass man ihn nicht vernünftig auswerten kann.
subprocess dagegen wirft Ausnahmen, die man vernünftig abfangen und dementsprechend behandeln kann.
Von Shell Injection-Lücken oder ähnlichen Scherzen mal ganz abgesehen ...
Sorry, aber os.system hat in guten Code nichts zu suchen.