Em python, existe uma função para verificar se um determinado arquivo / diretório é um link simbólico? Por exemplo, para os arquivos abaixo, minha função de wrapper deve retornar 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
fonte
fonte
lnk
eos.islink('a_shortcut.lnk')
retornamFalse
.IO_REPARSE_TAG_SYMLINK
).Para python 3.4 e superior, você pode usar a classe Path
Você deve ter cuidado ao usar o método is_symlink (). Ele retornará True mesmo que o destino do link não exista, desde que o objeto nomeado seja um link simbólico. Por exemplo (Linux / Unix):
Então, em seu diretório atual acione o python
O programador tem que decidir o que ele realmente quer. O Python 3 parece ter renomeado várias classes. Pode valer a pena ler a página de manual da classe Path: https://docs.python.org/3/library/pathlib.html
fonte
is_symlink()
é verdade eexists()
é falso, que é o que eu esperava. Você pode fornecer uma fonte de suas preocupações?is_symlink
está retornandotrue
para arquivos inexistentes (entãoexists()
também retornatrue
).Sem a intenção de sobrecarregar este tópico, mas fui redirecionado para esta página enquanto procurava links simbólicos para encontrá-los e convertê-los em arquivos reais e encontrei este script na biblioteca de ferramentas do python.
fonte