Python 文件路径是什么?
根据平常的经验,如果想要找到某一个文件,需要事先知道这个文件放在哪个位置。其中,文件所处的位置就是经常所说的 “文件路径”。在 Python 中,文件路径可以分为 2 种:一种是 “绝对路径” ,另一种是 “相对路径” 。
首先在 D 盘目录下创建一个名为 “outer” 的文件夹,该文件夹子级包含一个名为 “inner” 的文件夹以及 A.txt,然后 inner 文件夹内部包含一个 B.txt,整个目录结构如下图所示。

文件的绝对路径
绝对路径,指的是文件在你电脑中的完整路径。我们平常使用电脑时都知道,文件夹上方会有一个路径,这个就是绝对路径,如下图所示。

对于 A.txt 这个文件,它的绝对路径如下:
D:\outer\A.txt对于 B.txt 这个文件,它的绝对路径如下:
D:\outer\inner\B.txt不同系统的路径
不同系统的路径是不一样的,主要体现在 “分隔符” 和 “大小写” 这两个方面。首先是分隔符上,Windows 系统使用 “反斜杠(\)” 作为路径分隔符,比如 c:\users\public。而 Linux 和 OS X 这两个系统使用 “正斜杠(/)” 作为路径分隔符,比如:/etc/hosts。
然后是大小写上,Windows 系统的文件或文件夹是不区分大小写的,而 Linux 和 OS X 这两个系统是严格区分大小写的。
在 Windows 系统中,路径通常长这样:D:\new_folder\test.txt。 但是,如果你直接把这个路径原封不动地写进 Python 代码的字符串中,这时是会报错的。这是因为在 Python 里,反斜杠 “\” 是一个 “转义字符”(比如 “\n” 代表换行,“\t” 代表制表符)。
为了解决这个问题,在 Python 中书写 Windows 路径时,我们有 3 种常用的解决办法。
方式 1:使用双斜杠 “\\”,将转义字符本身转义:
path = 'D:\\new_folder\\test.txt'方式 2:使用正斜杠 “/”,Python 在 Windows 下也能完美识别正斜杠(强烈推荐)
path = 'D:/new_folder/test.txt'方式 3:在字符串前面加一个小写字母 “r”,表示这是一个原始字符串,里面的 “\” 不发生转义:
path = r'D:\new_folder\test.txt'文件的相对路径
相对路径,指的是文件相对于当前工作目录的路径。所谓 “当前工作目录”,指的是当前程序所在的这个 .py 文件所处的目录,也就是 .py 文件所在的文件夹的整个路径。
大多数情况下,你想要操作的文件跟当前 Python 程序文件都是不在一个目录下的,但可以使用相关操作(如后面章节介绍的 os.chdir() 函数),来切换当前工作目录。
如果切换当前工作目录到 “D:” 这个目录下,此时对于 A.txt 这个文件,它的相对路径为:
outer\A.txt而对于 B.txt 这个文件,它的相对路径为:
outer\inner\B.txt如果切换当前工作目录到 “D:\outer” 目录下,此时对于 A.txt 这个文件,它的相对路径为:
A.txt而对于 B.txt 这个文件,它的相对路径为:
inner\B.txt至此,两种路径已经介绍完了。为了方便后面的学习,我们需要在 D 盘中创建一个名为 “python-test” 的文件夹,并且在该文件夹中添加一个 test.py,如下图所示。

注意: 本章后面几节中,如果没有特殊说明,所有示例的代码都是在该目录的 test.py 中运行的。记得每次要先把 test.py 原来的代码清空,接着编写当前示例的代码,然后保存后再来运行。
如何操作文件路径
在 Python 中,主要有以下 2 个模块用于操作路径。
- os.path 模块
- pathlib 模块
在 Python 3.4 之前,凡是涉及路径的操作,我们都是使用 os 模块来实现的。不过在 Python 3.4 之后,pathlib 成为标准库模块。此后对于路径的操作,Python 官方都建议使用 pathlib 模块。
关于 pathlib 模块的详细使用,另请参阅:Python pathlib 模块。
