python:无法从另一个目录打开json文件?

时间:2019-12-27 07:12:14

标签: python path pytest relative-path

我的测试在:

src/com/xyz/tests/api_test/<Test File>

我的测试文件在以下位置调用我的库:

src/com/xyz/libs/api_libs/<Library File>

我的库文件必须在以下位置打开JSON文件:

src/com/xyz/libs/api_libs/configs/<Config File>

在我的库文件中,由于它与JSON配置位于同一父目录中,因此我使用了以下代码来打开JSON。

with open('configs/sample_wlan_json'):
    <Do Some action> 

我尝试了各种路径,例如:

.../libs/api_libs/configs/<ConfigFileName>

src/com/mist/libs/api_libs/configs/<ConfigFileName>.json

The whole path from /Users/...... but nothing seems to work.

1 个答案:

答案 0 :(得分:1)

相对路径是相对于当前工作目录的。当前的工作目录取决于应用程序的启动方式,而不是在哪里。

因此,如果您想要相对于源代码的路径,则不应依赖当前的工作目录,而应构造绝对路径。

您可以使用__file__变量来构建相对于源代码的路径,该变量是当前py文件的路径。

类似的事情应该起作用:

configs_dir = os.path.join(__file__, '..', 'configs')

with open(os.path.join(configs_dir, 'sample_wlan.json'), 'rt') as f:
   ...