【发布时间】:2017-08-31 20:34:32
【问题描述】:
我有以下项目结构
ts_tools
/bin
/docs
/lib
/ts_tools
/data_transfer
/tests
data_import.py
__init__.py
/data_manipulation
/tests
data_smoothing.py
__init__.py
__init__.py
config.yaml.conf
setup.py
LICENSE
README.md
TODO.md
我想使用data_import.py 文件从外部源导入数据。我使用config.yaml.conf 文件来指定数据的绝对路径:
root_path:
windows:
data_fundamental: C:\\Users\\Malcom\\Data_Fundamental
data_event: C:\\Users\\Malcom\\Data_Event
linux:
data_fundamental: /home/data/data_fundamental
data_event: /home/data/data_event
ts_tools 包中的所有工具(即data_import.py 和data_smoothing.py)都应该可以使用相应的路径。此外,程序应识别操作系统并相应地选择路径结构。
我知道如何使用 yaml 文件设置路径
import yaml
with open("config.yaml.conf", "r") as ymlfile:
cfg = yaml.load(ymlfile)
我知道如何区分操作系统
if platform.system().lower() == 'windows':
ROOT_DATA_PATH = cfg['windows']
else:
ROOT_DATA_PATH = cfg['linux']
但我不知道在哪里放置这些代码 sn-ps。我认为在setup.py 文件中使用它并不合适。另一方面,我认为指定一个新的 .py 文件是不合适的。对于这个问题,什么是好的设计结构?应该在哪里指定绝对文件路径?我的 ansatz 是朝着正确方向迈出的一步吗?
提前谢谢你。
【问题讨论】:
标签: python absolute-path