11

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
  • Try to add another backlash before "2013" Commented Jun 26, 2013 at 17:09

5 Answers 5

28

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")
Sign up to request clarification or add additional context in comments.

4 Comments

Or use forward slashes, or double the backslashes.
@MartijnPieters: Yep, good point. Python can correctly understand paths like C:/Users/Josh/... on Windows.
what does the "r" do??
@Nabin It's how you define a raw string, i.e. a string without any escape sequences
4

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.

Comments

3

This should work -

os.chdir("C:\Users\Josh\Desktop\\20130216")

2 Comments

why do you need the second backslash?
@Stephan Because "\201" is a character. We need to escape the backslash to tell python that you didn't mean that but it's just another backslash (in fact path separator here)
0

There are two to use os.chdir():

  1. If you are using raw string than use single backslash \:

    os.chdir(r"C:\Users\Josh\Desktop\20130216")

or

  1. If you are not using raw string than use double backslash \\

    os.chdir("C:\Users\Josh\Desktop\20130216")

Comments

-1

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.

Comments

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.