问题
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