【发布时间】:2020-06-19 16:20:17
【问题描述】:
我设置了一个 python 项目,其中我的脚本存储在一个文件夹中,我的包和数据存储在其他文件夹中,我正在尝试组织最佳结构和过程,以使这些项目之间的引用更加健壮:
project_dir/
data/
raw/
source_1.csv
source_2.csv
processed/
tidydata.csv
results.csv
src/
scripts/
clean_raw_data.py
calc_results.py
packages/
import_tools
tool_a.py
tool_b.py
calc_tools
Makefile
我希望能够通过导入 (./src/packages) 和我的数据 (./data) 可靠地引用我的包
使用./src/scripts 文件夹中我的任何脚本的文件读取和写入操作。
我当前的设置涉及执行以下操作:
导入包(调用函数以导入其他函数似乎是不好的做法):
# clean_raw_data.py
import sys
from pathlib import Path
sys.path.append(str(Path(__file__).parent.parent))
import packages.import_tools as imptool
读写文件:
import pandas as pd
df = pd.read_csv('../../data/raw/source_1.csv')
# operations
df.to_csv('../../data/processed/tidydata.csv')
理想情况下,我希望所有内容都可以从项目文件夹project_dir 中引用
在我的结构中的任何文件或脚本中,这样我就可以执行以下操作:
import src.packages.import_tools as imptool
df = pd.read_csv(f'{ROOT_DIR}/data/raw/source_1.csv')
以某种方式。我认为有一个最佳实践指南来配置事情的行为 以类似的方式,但没有看到任何好的建议。什么是最好的方法 处理这个?
【问题讨论】:
标签: python python-3.x import directory path