在编码过程中使用相对路径使代码的稳定性更好,即使项目目录发生变更,只要文件相对路径不变,代码依然可以稳定运行。但是在python代码中使用相对路径时会存在以下问题,示例代码结构如下:
在models包下有一个read_data.py模块,主要用来读取data目录下的config.ini 文件,代码如下:
import configparser
def read_data():
cfg = configparser.ConfigParser()
cfg.read('../../data/config.ini', encoding='UTF-8')
value = cfg.get(sector,item)
return value
if __name__ == '__main__':
print(read_data())
那么在该模块下运行是没有问题的,现在如果在test.py模块下导入改模块,获取数据就会出错。
解决办法:
在read_data.py模块下加入该行代码就可以了:
os.chdir(os.path.dirname(os.path.abspath(__file__)))