python经常会遇到切换路径的操作。例如文件结构如下
在写程序时遇到test.test_data.py里调用utils.data_process.data.py的open_file()读取data.txt的目录,跟直接在utils.data_process.data.py运行调用open_file()读取data.txt的目录,运行结果是不同的。个人猜想:test调用时是以test所在目录作为当前目录的,直接运行时是取的data_process目录作为当前目录的。所以为了避免这种情况发生,选对读取路径的函数非常关键,通过实验发现,在data.py文件用os.path.dirname(__file__)读取的文件所在路径,无论怎么调用都是%项目所在物理路径%testpath/utils/data_process,这样再想办法根据需求取父节点,和祖先节点就可以了。
data.txt
[store]
shopid = '20180828'
shopname = 'sunny'
address = 'shanghai'
data.py
#!coding:utf-8
import ConfigParser
import os
def open_file():
cp = ConfigParser.ConfigParser()
# 获取data.py的目录