我的测试在:
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.
答案 0 :(得分:1)
相对路径是相对于当前工作目录的。当前的工作目录取决于应用程序的启动方式,而不是在哪里。
因此,如果您想要相对于源代码的路径,则不应依赖当前的工作目录,而应构造绝对路径。
您可以使用__file__
变量来构建相对于源代码的路径,该变量是当前py文件的路径。
类似的事情应该起作用:
configs_dir = os.path.join(__file__, '..', 'configs')
with open(os.path.join(configs_dir, 'sample_wlan.json'), 'rt') as f:
...