其实, *** 作系统中实际只有一种路径,那就是绝对路径。 相对路径,只是程序自己帮我们修改为绝对路径了。
*** 作系统的程序运行器利用环境变量,为我们把相对路径生成为绝对路径。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。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)