我的文件结构如下:
kkg/
builder/test.py
builder/data
api/api.py
__init__py
“ kkg”是我的软件包名称,在init .py中定义了一些函数,并将这些函数的实现编写为api.py。
在test.py中,我有:
import kkg
kkg.load('builder/data/')
在api.py的“负载”中,我有代码:
abspath = os.path.abspath(os.path.dirname(__file__))
...
for file in files:
file_path = os.path.join(abspath, data_path)
data_path是从test.py传递的参数“ builder / data /”。path.join报告错误:
Caused by: java.io.FileNotFoundException: /Users/comin/kkg/kkg/api/data/people.csv
如果正确解析,则正确的数据路径应为:
/Users/comin/kkg/kkg/data/people.csv
我在builder /目录中运行“ test.py”。我认为生成的路径中没有不必要的“ api”的原因是因为api.py中发生错误的代码段。
也许我不应该使用join(abspath,data_path)来获取绝对目录。如何正确解析路径?
编辑:
我更改了路径参数:
kkg.load('../builder/data/')
但是此代码失败了:
if not os.path.isdir(data_path):
raise ValueError('data_path must be a directory, not file name!')
当我在路径中添加“ ..”时为什么会引发错误?由于'..',它不被视为目录。
你想要我认为的父目录
abspath = os.path.abspath(os.path.join(os.path.dirname(__file__),".."))
您似乎为此付出了更多的努力...这样做可能会更容易
path_to_data_file_folder = os.path.abspath(sys.argv[1])
然后用 python main.py /path/to/data/folder
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句