You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

MacOS下os.path.abspath()在测试与业务代码中返回路径不一致问题

MacOS下os.path.abspath()返回路径不一致问题及疑惑

问题场景

在单元测试和被测代码中调用os.path.abspath()时,针对同一文件得到了不同结果,环境为Python 3.9.13 + MacOS Monterey 12.6.2。

被测代码

abspath = os.path.abspath(filepath)

测试代码

测试时会将文件复制到临时测试目录后执行被测代码:

self.test_data = os.path.dirname(test_data.__file__)
self.test_dir = tempfile.mkdtemp(prefix="test_")
shutil.copy(
    os.path.join(self.test_data, "thefile.txt"),
    os.path.join(self.test_dir, "thefile.txt"),
)

测试失败现象

被测代码生成的文件路径为:
/private/var/folders/1w/k19bxrj1463_4j5m8xv6_6cc0000gp/T/test_z66pgwj_/thefile.txt
但测试预期路径为:
/var/folders/1w/k19bxrj1463_4j5m8xv6_6cc0000gp/T/test_z66pgwj_/thefile.txt
且在测试中直接调用os.path.abspath(os.path.join(self.test_dir, "thefile.txt"))返回的路径不带/private前缀。

解决后的疑惑

问题已解决,但仍有疑问:

  • os.path.abspath(os.path.join(self.test_dir, "thefile.txt"))返回:
    /var/folders/1w/k19bxrj1463_4j5m8xv6_6cc0000gp/T/test_z66pgwj_/thefile.txt
  • os.path.abspath("thefile.txt")返回:
    /private/var/folders/1w/k19bxrj1463_4j5m8xv6_6cc0000gp/T/test_z66pgwj_/thefile.txt

内容的提问来源于stack exchange,提问作者attamatti

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.01 02:15:34