Python os.chdir正在修改传递的目录名
我正在尝试使用os.chdir更改python中的当前工作目录。我有以下代码:Python os.chdir正在修改传递的目录名,python,python-2.7,directory,chdir,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.chd
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'
回溯(最近一次呼叫最后一次):
文件“C:\Users\Josh\Desktop\InverseBot 1.0\InverseBot.py”,第3行,在
chdir(“C:\Users\Josh\Desktop\20130216”)
WindowsError:[错误2]系统找不到指定的文件
'C:\\Users\\Josh\\Desktop\x8130216'
有人能帮我吗?这应该行-
os.chdir("C:\Users\Josh\Desktop\\20130216")
Python将路径的
\2013
部分解释为转义序列\201
,它映射到字符\x81
,即u(当然,C:\Users\Josh\Desktopü30216
不存在)
使用原始字符串,以确保Python不会试图将\
后面的任何内容解释为转义序列
os.chdir(r"C:\Users\Josh\Desktop\20130216")
您还可以使用
os.path.join
()。
例如:
这是更优雅的+它与不同的操作系统兼容 我也遇到过同样的问题,但你必须尝试:
os.chdir(c:\\user\\Josh\\Desktop)
使用
\\
也许你应该得到你的解决方案。有两种方法可以使用os.chdir()
:
\
:
chdir(r“C:\Users\Josh\Desktop\20130216”)\\\
chdir(“C:\Users\Josh\Desktop\20130216”)尝试在“2013”之前添加另一个反斜杠为什么需要第二个反斜杠?@Stephan,因为“\201”是一个字符。我们需要避开反斜杠来告诉python您不是这个意思,但它只是另一个反斜杠(实际上这里是路径分隔符),或者使用前斜杠,或者将反斜杠加倍。@MartijnPieters:是的,说得对。Python可以正确理解Windows上的路径,如
C:/Users/Josh/…
。r是做什么的???@Nabin它是如何定义原始字符串的,即没有任何转义序列的字符串
os.chdir(c:\\user\\Josh\\Desktop)