Résolue

Evolution du script

# Correction de code # Fichiers

Bonjour,
après avoir suivi la correction (j'ai énormément galéré à réaliser l'exercice seul) j'essaye donc de me le réapproprier en lui faisant faire autre chose : supprimer les doublons.
Toujours dans le dossier Downloads il m'arrive de dl plusieurs fois le même fichier ce qui amène un "(1)" à la fin de son nom.
J'essaye donc de repérer ces fichier avec un

for f in dossier
    if "(1)" or "(2)" in f:
        f.rm

Or j'obtiens une erreur m'expliquant que rm n'existe pas. J'aimerais donc savoir ce que j'ai mal fait et/ou compris.
Merci d'avance !

Salut Alexis,

Déjà très bonne idée d'essayer de faire des choses différemments pour bien assimiler tout ça, c'est la meilleure chose à faire 👍

Déjà, fait attention à ta condition, il faut répéter le in :

if "(1)" in f or "(2)" in f:

Sans la répétition, ta condition sera toujours vraie, car une chaîne de caractères qui n'est pas vide est évaluée comme "True".

Donc si on "traduit" pour l'interpréteur Python, ta condition revient à faire :

if "(1)" or "(2)" in f:
# Est similaire à 
if bool("(1)") or "(2)" in f:
# Est similaire à 
if True or True (ou False en fonction de ta deuxième condition, si "(2)" est présent ou non dans f)

Donc ta première condition sera toujours True et avec un or, peu importe le résultat de la deuxième condition, il suffit d'un True pour que toutes les conditions soient validées et que tu rentres dans ta structure conditionnelle.

C'est une erreur des erreurs les plus courantes, ne t'en fais pas. D'un point de vue logique, on pense que Python va voir ta condition comme if ("(1)" or "(2)") in f alors qu'en fait il va évaluer if "(1)" or ("(2)" in f).

Concernant ta deuxième question, effectivement, rm n'existe pas sur un objet Path de pathlib. Les deux façons de supprimer un dossier ou un fichier sont respectivement rmdir et unlink. J'en parle à environ 3mn20 dans cette vidéo.

En effet merci beaucoup pour les infos mon script fonctionne et je n'ai plus de doublons !

Inscris-toi

(c'est gratuit !)

Inscris-toi

Tu dois créer un compte pour participer aux discussions.

Créer un compte

Rechercher sur le site

Formulaire de contact

Inscris-toi à Docstring

Pour commencer ton apprentissage.

Tu as déjà un compte ? Connecte-toi.