44 Stimmen

Vorteile von os.path.splitext gegenüber normalem .split?

Unter diese andere Frage zeigen die Stimmen eindeutig, dass die os.path.splitext Funktion wird der einfachen .split('.')[-1] String-Manipulation. Könnte mir jemand erklären, warum das so ist? Ist es schneller oder genauer oder was? Ich bin bereit zu akzeptieren, dass es etwas Besseres gibt, aber ich kann nicht sofort erkennen, was das sein könnte. Könnte es nicht übertrieben sein, ein ganzes Modul zu importieren, um dies zu tun, zumindest in einfachen Fällen?

EDIT: Die Spezifität des Betriebssystems ist ein großer Gewinn, der nicht sofort ersichtlich ist; aber selbst ich hätte den Fall "was, wenn es keinen Punkt gibt" erkennen müssen! Und vielen Dank an alle für die allgemeinen Kommentare zur Bibliotheksnutzung.

0voto

fgeorgatos Punkte 146

Ich bin mir nicht sicher, ob Python auf die VMS-Plattform portiert wurde, aber ich nehme an, dass dies der Fall ist (*):

  • Die Dateinamen haben in der Regel das Format: $Gerät-Verzeichnis-Unterverzeichnis$Dateiname.$Typ;$Version (**)

Ich hoffe, Sie sind sich darüber im Klaren, dass die Anwendung einer Methode mit engem Anwendungsbereich, die nur von den Systemen beeinflusst wird Sie sind, ist nicht optimal für die langfristige Wartbarkeit des Codes, und solche Praktiken sind besonders schädlich für das Mischen und Anpassen unterschiedlicher Softwarekomponenten in größeren Softwareprojekten.

Im letzteren Fall ist die Erfolgswahrscheinlichkeit (Zuverlässigkeit) im Wesentlichen gleich

R(t)=1-(1-Ri)^n

und Sie können jetzt sehen, wie schlechte/unvollständige Softwareimplementierungen zu fehlerhaften Programmen führen. Ganz allgemein gesprochen ist die Portierung von Software gerade wegen solcher Fehler schwierig.

(*) hm, googeln ergab schnell über: https://www.vmspython.org
(**) Schauen Sie sich die Regex-Kriege hier an! https://stackoverflow.com/a/4465456/1574494

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X