FileNotFoundError: [Errno 2] No such file or directory: ‘../data/login.json‘ 解决方法

我出现这个问题是因为使用了相对路径

file = "../data/login.json"
with open(file, encoding="utf-8") as f:
    result = json.load(f)

这个在当前文件运行并不会报错,
不过,作为一个TestCase,他需要进行参数化并加载到测试套件(TestSuite)中统一运行。
但是,测试套件和这个测试用例并不在同一个目录下,
所以,就会导致,在测试套件运行这条测试用例的时候,会找不到用相对路径指定位置数据文件。
报出标题上的错误:

FileNotFoundError: [Errno 2] No such file or directory: '../data/login.json'

解决方法就是,使用绝对路径来指定数据文件的位置,绝对路径是固定的,不会随着文件本身所在位置的改变而改变。

比较便捷的方法就是在项目的统一配置文件中,写入一个项目的基本路径,在其他代码文件中要使用绝对路径的时候只需要用基本路径拼接上你想找的文件在项目下的相对路径就可以了。

代码如下:
app.py(项目的配置文件,在项目的主目录中):

import os  # 要想使用路径相关功能需要导入 os 模块

BASE_DIR = os.path.dirname(os.path.abspath(__file__))
# 后面括号中的是 app.py 这个文件的路径,附带了文件名 如: F:\WorkSpace\项目名称\app.py
# 因为我们要的是项目的主路径,所以加上括号前面的代码,去掉文件名,获得的就是项目的绝对路径  如:F:\WorkSpace\项目名称
print(BASE_DIR)

好了,这样就能解决找不到文件路径的问题了。

  • 5
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值