En python, existe-t-il une fonction pour vérifier si un fichier / répertoire donné est un lien symbolique? Par exemple, pour les fichiers ci-dessous, ma fonction wrapper doit retourner 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
la source
la source
lnk
et lesos.islink('a_shortcut.lnk')
retoursFalse
.IO_REPARSE_TAG_SYMLINK
).Pour python 3.4 et plus, vous pouvez utiliser la classe Path
Vous devez être prudent lorsque vous utilisez la méthode is_symlink (). Il retournera True même si la cible du lien est inexistante tant que l'objet nommé est un lien symbolique. Par exemple (Linux / Unix):
Ensuite, dans votre répertoire actuel, lancez python
Le programmeur doit décider ce qu'il veut vraiment. Python 3 semble avoir renommé de nombreuses classes. Il peut être intéressant de lire la page de manuel de la classe Path: https://docs.python.org/3/library/pathlib.html
la source
is_symlink()
soit vrai etexists()
faux, ce à quoi je m'attendais. Pouvez-vous donner une source pour vos préoccupations?is_symlink
retournetrue
pour des fichiers inexistants (doncexists()
retourne égalementtrue
).Sans l'intention de gonfler ce sujet, mais j'ai été redirigé vers cette page car je cherchais des liens symboliques pour les trouver et les convertir en fichiers réels et j'ai trouvé ce script dans la bibliothèque d'outils python.
la source