从相对路径到绝对路径
在python中,因为一个项目通常会被布置在多台机器上,因此在项目中读取项目内的文件时,使用绝对路径是不合适的,因为在不同的机器上,项目的路径往往是不同的。在一般情况下,直接使用相对路径就可以满足要求,但是,如果我们对于一个通过相对路径读取到的文件,需要得到其绝对路径的话,应该怎么办呢?这时,可以通过os
包中的os.path.abspath(path)
来实现这个功能。
下面给出一个demo,为了说明相对路径,这里在项目根目录DemoProject下有两个文件夹,一个是codes,一个是data,codes下一个文件夹为testCodes,而如下测试代码addr_test.py就在这个文件夹下,而根目录下的另一个文件夹data中有一个文件名为test_file.txt,我们知道如果要在addr_test.py中读取到这个文件需要用相对路径'../../data/test_file.txt'
,以下代码将演示如何得到这个文件的绝对路径。
import os
# 需要的文件的路径
path = r'../../data/test_file.txt'
# 以读模式打开该文件,这里只是为了说明该文件存在
file_open = open(path, mode='r')
# 打印绝对路径
print(os.path.abspath(path))
结果:
/home/lenfranky/codes/home/lenfranky/codes/DemoProject/data/test_file.txt
可以看到,我们已经把文件的绝对路径打印了出来,后续处理也可以基于这个字符串形式的路径进行。