Je suis novice en python et en codage en général. J'ai passé beaucoup de temps à essayer de corriger cette erreur, mais je ne suis pas capable de comprendre comment faire cela. J'ai un dossier principal qui contient un sous-dossier, je veux déplacer des dossiers du dossier principal au sous-dossier. Cela devrait être fait facilement par os.rename
ou shutil.move
mais je ne suis pas capable de corriger cette erreur. Voici le code que j'utilise et l'erreur que je reçois.Erreur de chemin os.rename lors du déplacement du fichier dans le sous-répertoire
cdir=os.getcwd()
newdir=cdir+"\subfolder"
src=os.path.join(cdir, fname)
dst=os.path.join(newdir, fname)
os.rename(src,dst)
L'erreur montre une double barre oblique inverse dans le chemin des répertoires à savoir
FileNotFoundError: [WinError 3] The system cannot find the path specified: 'E:\\ folder\\fname' -> 'E:\\folder\\subfolder\\fname'
le bon chemin serait avec des barres obliques arrière simples. J'utilise Windows 8.1 et python34. Est-ce que quelqu'un peut m'aider avec ça. Je sais que cette question doit être un doublon, mais je suis incapable de comprendre ce que je fais mal. Une erreur similaire est générée avec shutil.move
Peut-être tort, mais j'aurais pensé que newdir = cdir + "\ sous-dossier" a besoin d'une double barre oblique pour l'échapper –
@RodHyde: '\ s' n'est pas une séquence d'échappement valide, donc ce n'est pas un problème. Cependant, utiliser 'os.path.join (cdir, 'subfolder')' serait meilleur, avec 'os.path.abspath ('subfolder')' étant le meilleur (car il sera basé sur celui du répertoire de travail courant). –
Les doubles antislash signifient juste que les antislashs sont échappés; Python vous montre le message d'erreur sous la forme d'une chaîne que vous pouvez copier pour reproduire la valeur exacte. Vous avez un problème ** différent **. –