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

Ubuntu 20.04下Python用pathlib读跨目录文件报FileNotFoundError如何解决

问题根因

  • 你代码里使用了Windows系统特有的反斜杠\作为路径分隔符,而Ubuntu属于Linux系统,默认路径分隔符是正斜杠/,导致路径识别错误
  • 直接写相对路径的基准是你执行脚本时的终端工作目录,而非code.py本身存储的Folder1目录,如果你没有在Folder1目录下运行脚本,相对路径就会指向错误位置

稳妥实现方案

推荐基于__file__变量定位脚本自身位置,再拼接目标路径,完全跨平台,不受运行目录影响:

from pathlib import Path

# 第一步:获取当前code.py所在的Folder1的绝对路径
script_dir = Path(__file__).absolute().parent
# 第二步:拼接目标文件路径,pathlib会自动适配当前系统的路径分隔符
target_path = script_dir / ".." / "Folder2" / "test.txt"
# 可选:标准化路径,消除../层级,方便排查问题
target_path = target_path.resolve()

# 读取前可先判断存在性,提前定位错误
if target_path.is_file():
    with open(target_path, 'r', encoding='utf-8') as f:
        content = f.read()
else:
    print(f"文件不存在,实际拼接路径为:{target_path}")

额外说明

  • pathlib支持直接用/运算符拼接路径,无需手动处理不同系统的分隔符差异,代码可以同时在Windows、Linux、macOS下运行
  • 遇到路径问题时直接打印target_path变量,就能快速确认路径拼接是否符合预期

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.06 07:30:02