Python怎样得到资源文件的绝对路径


路径有两种,相对路径和绝对路径。  对于Unix-Like系统来说,绝对路径就是以/开头的路径。  相对路径就是不以/开头的路径。

其实,操作系统中实际只有一种路径,那就是绝对路径。  相对路径,只是程序自己帮我们修改为绝对路径了。

操作系统的程序运行器利用环境变量,为我们把相对路径生成为绝对路径。getcwd()函数用于得到当前进程的当前工作路径。也就是相对路径的起始点。

在python中,可以使用os.chdir函数切换当前工作路径。

当前工作路径,是程序执行时所在的路径。  我们在哪个目录下执行程序,当前路径就是哪一个目录。

我们常常需要在python中执行一些源码目录下的文件。如,我们可能需要用eval动态执行一个python源文件。或者copy一些配置文件到目标系统的路径下。此时,我们无法知道这些文件的绝对路径,因为我们不能预知用户会把我们的程序安装到哪一个目录下。

我们也不能依赖于当前工作路径。因为用户很可能不在我们的源码目录下执行我们的程序。

那么,此时我们如何得到源码目录下文件的绝对路径呢?

我是这样做的:

ABSPATH=None

if __name__ == '__main__':

ABSPATH=os.path.abspath(sys.argv[0])

ABSPATH=os.path.dirname(ABSPATH)+"/"

print ABSPATH

通过拿到第一个参数的绝对路径,我们就知道了程序所在的绝对路径,我们就能够使用ABSPATH这个全局变量组装出 我们源码目录下的任意一个文件的绝对路径了!

相关内容