05-当前工作目录
9.1.3 当前工作目录
每个运行在计算机上的程序,都有一个“当前工作目录”或cwd。所有没有从根文件夹开始的文件名或路径,都假定在当前工作目录下。
注意: 虽然文件夹是目录的新名称,但请注意,当前工作目录(或当前目录)是标准术语,没有“当前工作文件夹”这种说法。
利用 Path.cwd()
函数,可以取得当前工作路径的字符串,并可以利用 os.chdir()
改变它。在交互式环境中输入以下代码:
>>> from pathlib import Path
>>> import os
>>> Path.cwd()
WindowsPath('C:/Users/Al/AppData/Local/Programs/Python/Python37')'
>>> os.chdir('C:\\Windows\\System32')
>>> Path.cwd()
WindowsPath('C:/Windows/System32')
这里,当前工作目录设置为C:\Users\Al\AppData\Local\Programs\Python\Python37,因此文件名project.docx指向C:\Users\Al\AppData\Local\Programs\Python\Python37\ project.docx。如果我们将当前工作目录改为C:\Windows\System32,文件就被解释为C:\Windows\System32\project.docx。
如果要更改的当前工作目录不存在,Python就会显示一个错误:
>>> os.chdir('C:/ThisFolderDoesNotExist')
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
FileNotFoundError: [WinError 2] The system cannot find the file specified:
'C:/ThisFolderDoesNotExist'
没有可以用于更改工作目录的 pathlib
函数,因为在程序运行时更改当前工作目录通常会导致微妙的错误。
os.getcwd()
函数是取得当前工作目录字符的较老方法。