简体   繁体   中英

Python os.chdir is modifying the passed directory name

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?

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")

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.

这应该工作 -

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

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")

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.

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM