J'essaie de changer le répertoire de travail actuel en Python à l'aide de OS.CHDIR. J'ai le code suivant: Cependant, lorsque je l'exécute, il semble de modifier le répertoire, car il sort avec le message d'erreur suivant: P> Traceback (most recent call last):
File "C:\Users\Josh\Desktop\LapseBot 1.0\LapseBot.py", line 3, in <module>
os.chdir("C:\Users\Josh\Desktop\20130216")
WindowsError: [Error 2] The system cannot find the file specified
'C:\\Users\\Josh\\Desktop\x8130216'
5 Réponses :
Cela devrait fonctionner -
os.chdir("C:\Users\Josh\Desktop\\20130216")
Pourquoi avez-vous besoin du deuxième barre-backslash?
@Stephan parce que "\ 201" est un personnage. Nous devons échapper à la barre oblique inverse pour dire à Python que vous ne vouliez pas dire que, mais c'est juste une autre barre oblique inverse (séparateur de chemin d'accueil ici)
Python interpréte la partie Utilisez une chaîne brute, pour vous assurer que le python ne doit pas t essayer d'interpréter quoi que ce soit à la suite d'un \ 2013 code> du chemin comme la séquence échappée em>
\ 201 code>, qui mappe au caractère
\ \ x81 code>, qui est ¼ (et bien sûr
c: \ users \ josh \ dektopü30216 code> n'existe pas).
\ code> comme séquence d'échappement. p>
Ou utilisez des barres obliques avant ou doublez les backslashes.
@Martijnpieters: Oui, bon point. Python peut comprendre correctement les chemins tels que c: / users / josh /... code> sous Windows.
Que fait le "R" ??
@Nabin C'est comment vous définissez une chaîne brute, c'est-à-dire une chaîne sans séquences d'échappement
Vous pouvez également utiliser os.path.join code> ( documentation ).
Exemple:
os.chdir(os.path.join('C:\Users\Josh\Desktop', '20130216'))
J'ai fait face au même problème, mais vous devez essayer: Utiliser \\ code> alors peut-être que vous devriez obtenir votre solution. P> p>
Il y a deux à utiliser Si vous utilisez une chaîne brute que d'utiliser une seule barre oblique inverse Os.chDir (R "C: \ Users \ Josh \ Desktop \ 20130216") P> LI>
ol>
ou fort> p>
Si vous n'utilisez pas une chaîne brute que d'utiliser double barre arrière OS.CHDIR ("C: \ Users \ Josh \ Desktop \ 20130216") P> Li>
ol> os.chdir () code>: p>
\ code>: p>
\\ code> p>
Essayez d'ajouter une autre backlash avant "2013"