Python os.chdir正在修改传递的目录名称

时间:2013-06-26 17:07:44

标签: python python-2.7 directory chdir

我正在尝试使用os.chdir更改python中的当前工作目录。我有以下代码:

import os

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

但是,当我运行它时,它似乎更改了目录,因为它出现以下错误消息:

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 个答案:

答案 0 :(得分:25)

Python将路径的\2013部分解释为转义序列 \201,它映射到字符\x81,即ü(和当然,C:\Users\Josh\Desktopü30216不存在。)

使用原始字符串,以确保Python不会尝试将\之后的任何内容解释为转义序列。

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

答案 1 :(得分:3)

您也可以使用os.path.joindocumentation)。 例如:

os.chdir(os.path.join('C:\Users\Josh\Desktop', '20130216'))

这更优雅+它与不同的操作系统兼容。

答案 2 :(得分:2)

这应该有效 -

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

答案 3 :(得分:0)

有两个使用os.chdir()

  1. 如果您使用原始字符串而不是使用单反斜杠\

    os.chdir(R “C:\用户\乔希\桌面\ 20130216”)

    1. 如果您不使用原始字符串而不是使用双反斜杠\\

      os.chdir( “C:\用户\乔希\桌面\ 20130216”)

答案 4 :(得分:-1)

我遇到了同样的问题,但你必须尝试:

os.chdir(c:\\user\\Josh\\Desktop)

使用\\所以也许你应该得到你的解决方案。