在Python中更改当前工作目录

16
我在桌面上创建了一个名为“headfirstpython”的文件夹,我需要将当前工作目录更改为该文件夹及其内部的子文件夹。我使用了os.getcwd()来获取当前文件夹,并且它给出了'C\Python32'。我尝试使用os.chdir('../headfirstpython/chapter3')来更改目录,但出现了无法找到路径的错误提示。
>>> import os
>>> os.getcwd()
'C:\\Python32'
>>> os.chdir('../headfirstpython/chapter 3')
Traceback (most recent call last):
File "<pyshell#2>", line 1, in <module>
os.chdir('../headfirstpython/chapter 3')
WindowsError: [Error 3] The system cannot find the path specified:         '../headfirstpython/chapter 3'
>>> os.chdir('../headfirstpython/chapter3')
Traceback (most recent call last):
File "<pyshell#3>", line 1, in <module>
os.chdir('../headfirstpython/chapter3')
WindowsError: [Error 3] The system cannot find the path specified:   '../headfirstpython/chapter3'
>>> 

1
也许是使用了错误的斜杠符号 (/ 而不是 \\) 导致了这个问题? - andrybak
"桌面"上的文件夹不在根目录中,因此相对路径将无法工作。尝试使用例如 "\\Users\\<your user name>\\Desktop\\the path"(或类似的,我记不清确切的路径了)。 - Some programmer dude
你能试试@JoachimPileborg说的方法吗?我认为那个方法会起作用。 - James Sapam
可能是重复的问题:如何在Python中执行“cd”操作 - alvas
可能是如何在Python中设置当前工作目录?的重复问题。 - Trevor Boyd Smith
用您自己的话解释,如果当前工作目录是 C:\\Python32,而您想要查找名为 chapter 3 的文件夹,该文件夹位于名为 headfirstpython 的文件夹中,该文件夹又位于您的桌面上,您认为 '../headfirstpython/chapter 3' 是相对于该文件夹的路径原因是什么?您认为桌面的路径是什么?(提示:它不是 C:\\。) - Karl Knechtel
1个回答

9

我认为有几件事情可能会有所帮助。

看起来你正在使用Windows系统,因此应该使用双反斜杠'\\'来分隔文件夹。

其次,如果你想要切换到当前文件夹内的一个文件夹,应该使用一个单点,而不是两个,例如 os.chdir('.\\folder')。

最后,如果你尝试访问的文件夹不是当前工作目录的直接子文件夹(或者在你的路径中不存在),你需要包含完整路径才能访问它。因为你说它在你的桌面上,所以你可能需要像这样:

import os
os.chdir('C:\\Users\\username\\Desktop\\headfirstpython') ## Where username is replaced with your actual username

接下来,您也可以使用以下命令切换到chapter3子目录:

cd chapter3

os.chdir('chapter3') 

在这种情况下等价于

os.chdir('.\\chapter3')

或者,如果您想要更为冗长:

os.chdir('C:\\Users\\username\\Desktop\\headfirstpython\\chapter3')

希望那能有所帮助?


在书中只是告诉我创建一个文件夹,但没有指明位置,所以我就在桌面上创建了一个文件夹。但这确实解决了问题。 - Tunafish Ha
看起来你正在使用 Windows 系统,所以你应该使用双反斜杠 '\' 来分隔文件夹。 这是错误的建议 - 请参考在 Python 字符串中如何编写 Windows 路径? - Karl Knechtel

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接