Deutsch   English   Français   Italiano  
<871r3eilgz.fsf@universite-de-strasbourg.fr.invalid>

View for Bookmarking (what is this?)
Look up another Usenet article

Path: ...!weretis.net!feeder6.news.weretis.net!feeder8.news.weretis.net!news.mixmin.net!aioe.org!NmhHF3GLbzxJR67/r10DhQ.user.46.165.242.75.POSTED!not-for-mail
From: Alain Ketterlin <alain@universite-de-strasbourg.fr.invalid>
Newsgroups: fr.comp.lang.python
Subject: Re: Liens symboliques sous Windows
Date: Wed, 17 Nov 2021 21:19:24 +0100
Organization: =?utf-8?Q?Universit=C3=A9?= de Strasbourg
Message-ID: <871r3eilgz.fsf@universite-de-strasbourg.fr.invalid>
References: <6194c003$0$20251$426a74cc@news.free.fr>
Mime-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: quoted-printable
Injection-Info: gioia.aioe.org; logging-data="38388"; posting-host="NmhHF3GLbzxJR67/r10DhQ.user.gioia.aioe.org"; mail-complaints-to="abuse@aioe.org";
User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/25.2 (gnu/linux)
Cancel-Lock: sha1:U8y4thwOD70RXJ91Ja0Mm4GgWGM=
X-Notice: Filtered by postfilter v. 0.9.2
Bytes: 2575
Lines: 43

ast <ast@invalid> writes:

> Il me semble que les liens symboliques de Windows ne sont
> pas bien reconnus par les modules os et pathlib.
> Voyez:
>
>>>> from pathlib import Path
>>>> p2 =3D Path('C:/Users/jm/desktop/json.txt - Raccourci.lnk')
>>>> p2
> WindowsPath('C:/Users/jm/desktop/json.txt - Raccourci.lnk')
>>>> p2.exists()
> True
>>>> p2.is_file()
> True
>>>> p2.is_symlink()
> False

D'apr=C3=A8s le nom du fichier, je pense qu'il s'agit d'un "shortcut"
Windows, ce qui n'est pas la m=C3=AAme chose qu'un lien symbolique : un
shortcut est un fichier normal (c'est =C3=A0 l'application de l'interpr=C3=
=A9ter
comme contenant le nom d'un autre fichier), alors qu'un lien symbolique
est r=C3=A9solu par les appels syst=C3=A8me et est donc transparent pour les
applications.

> Sur cette derni=C3=A8re commande, j'attendais True et pour le
> p2.is_file j'attendais plut=C3=B4t False

Pour Path.is_file() (de pathlib) la r=C3=A9ponse concerne la cible du lien
symbolique si ton chemin est celui d'un lien symbolique, donc impossible
d'utiliser cela pour faire la distinction.

Pour os.is_file() il y a un param=C3=A8tre "follow_symlinks" qui doit =C3=
=AAtre
plac=C3=A9 explcitement =C3=A0 False pour distinguer les fichiers "normaux"
(regular) des liens vers des fichiers normaux. Apparemment pathlib n'a
pas repris cette possibilit=C3=A9 et utilise la version par d=C3=A9faut
(follow_symlinks=3DTrue).

> Avec la lib os, c'est pareil

Oui, je pense que c'est elle qui fait le travail.

-- Alain.