3 Python相对路径地址的的一个问题

构建程序xiaojie_test.py

import os
from xxx.yyy import test
test()

 同目录下构建一个目录xxx,并且目录中有/tmp/results/graph文件

 xxx中的yyy.py文件中内容是:

import os

def test():
    if os.path.exists('tmp/result/graph'):
        print ('yes')
    else:
        print ('no')
test()

执行xiaojie_test.py的结果是:

no

no

输出两次no的原因是:

from xxx.yyy import test

会因为加载yyy文件,而执行yyy文件中的test。同时,xiaojie_test.py中也执行test。

执行yyy.py的结果是:

yes

结论:

相对寻址并不是相对于相对地址所在程序的目录,而是相对于相对地址所在程序被某个程序x调用时,x所在的目录。

如果这一点被混淆,很容易导致出错。

原文地址:https://www.cnblogs.com/xiaojieshisilang/p/11990567.html