原文地址 https://www.cyberlight.xyz/passage/absolute-path
记录我在Python中使用 相对路径 和 绝对路径 遇到的一些问题。(笔记以Windows为例,同样适用于 Linux 和 Mac OS)
环境:Windows 10, Python 3.8.1
一、概念及作用
绝对路径指 完整的描述文件位置的路径。
如,Windows下创建文件 test.txt,它的绝对路径为 D:\study\Python\Python_test\test.txt ,如图
使用绝对路径能精准定位文件在系统的位置,编程时能准确调用文件。
相对路径指 由这个文件所在的路径引起的跟其它文件(或文件夹)的路径关系。 程序中 即 '文件以主程序所在目录为起点,该目录之后的文件路径'。
我们继续创建一个py主程序,它的绝对路径为 D:\study\Python\test.py ,如下图
若需要通过 D:\study\Python\test.py 打开上一步创建的 D:\study\Python\Python_test\test.txt ,可通过相对路径打开,test.txt 相对于 test.py 的路径为 Python_test\test.txt【注意不是\Python_test\test.txt,\Python_test\test.txt 代表系统根目录下的该路径(即 绝对路径)】 ,即为 test.txt 以 test.py 所在目录为起点 的相对路径。
实际编程中,我们往往需要程序拥有更强的可移植性。使用绝对路径可能导致 '迁徙系统后,原路径失效'。这时需要使用相对路径,保证项目目录内的 子目录 或 文件 相对位置的不变。
二、在Python3中使用绝对路径和相对路径
打开第一步所建的 D:\study\Python\Python_test\test.txt,加入如下内容(后文测试打开),如图
继续编辑 D:\study\Python\test.py ,欲通过 D:\study\Python\test.py 打开 D:\study\Python\Python_test\test.txt 中的内容。
1.使用绝对路径打开
D:\study\Python\test.py 源码如下
text = open("D:\\study\\Python\\Python_test\\test.txt").read()
print(text)
该程序的输出如下图
成功读取 D:\study\Python\Python_test\test.txt 中的内容了~
您可能好奇,为什么Python中读取路径为 D:\\study\\Python\\Python_test\\test.txt ,而不是 D:\study\Python\Python_test\test.txt 。Windows中以反斜杠(\)为路径分隔,而在Python中用反斜杠(\)转义字符,若输入反斜杠(\)将报错。python字符串中,我们使用双反斜杠(\\)表示反斜杠(\)。【用 Linux 和 Mac OS 的朋友不必在意这点,这些环境中以斜杠(/)为路径分隔】
2.使用相对路径打开
D:\study\Python\test.py 源码如下
text = open("Python_test\\test.txt").read()
print(text)
该程序的输出如下图
PS:Python以相对路径调用文件 可理解为 命令窗口的 cd 命令,熟悉 cd 命令 能更好使用Python相对路径。
以上是这篇笔记的全部内容,感谢阅读!