gpt4 book ai didi

python - 当使用 py.test 测试该模块时,如何通过相对于 Python 模块的路径打开文件?

转载 作者:太空宇宙 更新时间:2023-11-04 08:50:56 24 4
gpt4 key购买 nike

我在一个包中有一个模块,它计算出调用 python 程序的路径:

pathname = os.path.dirname(os.path.realpath(__file__))

它将从那里获取一个 mydata.json 来读取一些参数值。

这在使用 python xyz.py

执行脚本时工作正常

但是同样的事情,当在目录中使用 py.test 完成时,路径只是指向一些二进制文件:/home/user/venv/bin/data/data.json

基本上假设调用脚本是 py.test 本身,它位于 venv/bin 中。

如何克服这个问题?我想获取脚本的路径,该路径又由 py.test 本身(通过模块)处理。

最佳答案

如果我理解正确,你应该使用

import json
import os

path_to_current_file = os.path.realpath(__file__)
current_directory = os.path.split(path_to_current_file)[0]
path_to_file = os.path.join(current_directory, "mydata.json")
with open(path_to_file) as mydata:
my_json_data = json.load(mydata)

关于python - 当使用 py.test 测试该模块时,如何通过相对于 Python 模块的路径打开文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35337704/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com