Gibt es in Python eine Funktion, mit der überprüft werden kann, ob eine bestimmte Datei / ein bestimmtes Verzeichnis ein Symlink ist? Für die folgenden Dateien sollte beispielsweise meine Wrapper-Funktion zurückgegeben werden True
.
# ls -l
total 0
lrwxrwxrwx 1 root root 8 2012-06-16 18:58 dir -> ../temp/
lrwxrwxrwx 1 root root 6 2012-06-16 18:55 link -> ../log
python
operating-system
Bandicoot
quelle
quelle
lnk
undos.islink('a_shortcut.lnk')
zurückgegebenFalse
.IO_REPARSE_TAG_SYMLINK
).Für Python 3.4 und höher können Sie die Path-Klasse verwenden
Sie müssen vorsichtig sein, wenn Sie die Methode is_symlink () verwenden. Es wird True zurückgegeben, auch wenn das Ziel des Links nicht vorhanden ist, solange das genannte Objekt ein Symlink ist. Zum Beispiel (Linux / Unix):
Starten Sie dann in Ihrem aktuellen Verzeichnis Python
Der Programmierer muss entscheiden, was er wirklich will. Python 3 scheint viele Klassen umbenannt zu haben. Es kann sich lohnen, die Handbuchseite für die Path-Klasse zu lesen: https://docs.python.org/3/library/pathlib.html
quelle
is_symlink()
wahr undexists()
falsch ist, was ich erwarten würde. Können Sie eine Quelle für Ihre Bedenken angeben?is_symlink
Gibttrue
für nicht vorhandene Dateien zurück (exists()
kehrt also auch zurücktrue
).Ohne die Absicht, dieses Thema aufzublähen, wurde ich auf diese Seite weitergeleitet, als ich nach Symlinks suchte, um sie zu finden und in echte Dateien zu konvertieren, und fand dieses Skript in der Python-Tools-Bibliothek.
quelle