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

Python怎样得到资源文件的绝对路径,第1张

路径有两种,相对路径绝对路径。 对于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

python写绝对路径和相对路径的方法:

绝对路径是指从系统盘一直到文件所在位置的路径,例如:“D:xmtitleprojectpycnvideo.txt”

相对路径是指相对于.py文件的路径,例如:“pycnvideo.txt”

示例如下:

相对地址

file = open("ax.txt", 'r')

a = file.read()

print("a =", a)

file.close()

绝对地址

file2 = open("C:UserszhoubDesktop项目ax.txt", 'r')

b = file2.read()

print("b =", b)

file2.close()

执行结果如下:

想了解更多python知识,请观看零基础入门Python项目实战视频!!

Python中的绝对路径和其他语言并无区别。

Python中的相对路径则有所不同,一般语言的相对路径的父目录指的是文件所在目录,而Python的相对路径的父目录指的是当前脚本执行目录。举个简单的例子:我有一个放在/xyz/bin目录下的脚本 test.py。那么他的绝对路径就是/xyz/bin,如果你在你的test脚本中使用了相对路径的话,那么test.py中的相对路径是根据脚本执行时你的当前目录所决定的。比如,如果你在/xyz/bin目录下还有一个文件test.txt,这是test.py中所使用的文件,那么在/xyz/bin目录下执行./test.py是没有问题的。但是如果你在其他目录执行python /xyz/bin/test.py,如果其他目录没有test.txt文件,那么必然会报错。因为此时相对路径的父目录已经不是/xyz/bin了,自然找不到/xyz/bin/test.txt。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/tougao/11710055.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-18
下一篇 2023-05-18

发表评论

登录后才能评论

评论列表(0条)

保存