Aus der Dokumentation:Python os Modulpfad Funktionen
os.path.realpath(path)
Return the canonical path of the specified filename, eliminating any
symbolic links encountered in the path (if they are supported by the
operating system).
Wenn ich rufe diese mit dem Namen eines vorhandenen Datei, bekomme ich den Weg dorthin: /home/myhome/myproject
.
Wenn ich dies mit einem 'nonsense.xxx' String Argument aufrufen, bekomme ich immer noch einen Pfad zu /home/myhome/myproject/nonsense.xxx
. Dies ist ein wenig inkonsistent, weil es so aussieht, als sei nonsense.xxx
ein Verzeichnis und keine Datei (obwohl es keines ist: es existiert nicht).
Wenn ich dies mit einem Null-String-Dateinamen aufrufen, bekomme ich immer noch einen Pfad zu /home/myhome/myproject
.
Wie kann ich dieses Verhalten erklären, wenn die Dokumentation so wenig über realpath() sagt? (Ich benutze Python 2.5.)
Edit: Jemand schlug eine Möglichkeit vor, zu testen, ob Dateien existieren. Es geht mir nicht darum zu testen, ob Dateien existieren. Es geht mir darum, das Verhalten zu erklären.
Das os.path doc sagt: "Dieses Modul implementiert einige nützliche Funktionen für Pfadnamen". Es besagt nicht, dass os.path.realpath() einen Pfad zurückgibt, unabhängig von dem Müll, den Sie senden. Aber das scheint es zu sein. – H2ONaCl
@broiyan: Ihre Erwartungen werden Ihnen viel mehr Kummer verursachen, wenn Sie die Unausgesprochenen annehmen. –
Ein Pfadnamen impliziert nicht, dass es sich um einen Pfad zu einer vorhandenen Datei handelt. Nur dass es ein gültiger Pfad ist. – richo