问题
I am trying to change the current working directory in python using os.chdir. I have the following code:
import os
os.chdir("C:\Users\Josh\Desktop\20130216")
However, when I run it, it seems to change the directory, as it comes out with the following error message:
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'
Can anyone help me?
回答1:
Python is interpreting the \2013 part of the path as the escape sequence \201, which maps to the character \x81, which is ü (and of course, C:\Users\Josh\Desktopü30216 doesn't exist).
Use a raw string, to make sure that Python doesn't try to interpret anything following a \ as an escape sequence.
os.chdir(r"C:\Users\Josh\Desktop\20130216")
回答2:
You could also use os.path.join (documentation).
Example:
os.chdir(os.path.join('C:\Users\Josh\Desktop', '20130216'))
This is more elegant + it's compatible with different operating systems.
回答3:
This should work -
os.chdir("C:\Users\Josh\Desktop\\20130216")
回答4:
There are two to use os.chdir():
If you are using raw string than use single backslash
\:os.chdir(r"C:\Users\Josh\Desktop\20130216")
or
If you are not using raw string than use double backslash
\\os.chdir("C:\Users\Josh\Desktop\20130216")
回答5:
I have faced the same problem but you have to try:
os.chdir(c:\\user\\Josh\\Desktop)
Use \\ so maybe you should get your solution.
来源:https://stackoverflow.com/questions/17326337/python-os-chdir-is-modifying-the-passed-directory-name