【发布时间】:2011-06-27 14:05:58
【问题描述】:
我有一个 python 模块,其中包含需要在运行时加载的各种数据文件(一组代表曲线的 csv 文件)。 csv 模块运行良好
# curvefile = "ntc.10k.csv"
raw = csv.reader(open(curvefile, 'rb'), delimiter=',')
但是如果我将此模块导入另一个脚本,我需要找到数据文件的完整路径。
/project
/shared
curve.py
ntc.10k.csv
ntc.2k5.csv
/apps
script.py
我希望 script.py 仅通过基本文件名引用曲线,而不是完整路径。在模块代码中,我可以使用:
pkgutil.get_data("curve", "ntc.10k.csv")
在查找文件时效果很好,但它返回已经读入的 csv 文件,而 csv.reader 需要文件句柄本身。有什么办法可以让这两个模块一起玩得很好?它们都是标准库模块,所以我并没有真正期待问题。我知道我可以开始拆分 pkgutil 二进制文件数据,但我可能不使用 csv 库。
我知道我可以在模块代码中使用它,而忘记 pkgutils,但看起来 pkgutils 确实正是它的用途。
this_dir, this_filename = os.path.split(__file__)
DATA_PATH = os.path.join(this_dir, curvefile)
raw = csv.reader(open(DATA_PATH, "rb"))
【问题讨论】:
标签: python