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

Jupyter Notebook无法访问主目录下文件问题求助

解决Jupyter Notebook中读取~/data/file.txt的FileNotFoundError问题

嗨,这个问题我之前也碰到过!核心原因很简单:Python的open()函数并不认识shell里的~符号——这个波浪号是bash等shell用来指代用户主目录的语法,Python本身没法直接解析它,所以你直接写~/data/file.txt的时候,Python会把它当成一个普通的文件名,自然找不到对应的文件。

下面给你几个靠谱的解决办法:

方法1:用os.path.expanduser()解析波浪号

这是比较经典的处理方式,通过os模块的函数把~转换成真实的主目录路径:

import os
# 展开波浪号为绝对路径
file_path = os.path.expanduser('~/data/file.txt')
# 安全读取文件(用with语句会自动关闭文件)
with open(file_path, 'r') as f:
    content = f.read()

这个函数会自动把~替换成你的用户主目录绝对路径,比如Linux/macOS下的/home/你的用户名/data/file.txt,或者Windows下的C:\Users\你的用户名\data\file.txt。

方法2:用pathlib模块(Python3.4+推荐)

如果你用的是较新的Python版本,推荐用更现代的pathlib来处理路径,语法更直观:

from pathlib import Path
# 获取主目录并拼接路径
file_path = Path.home() / 'data' / 'file.txt'
with open(file_path, 'r') as f:
    content = f.read()

Path.home()会直接返回你的用户主目录路径,然后用/就可以像在shell里一样拼接子目录和文件名,非常方便。

方法3:直接使用绝对路径

如果你明确知道自己的主目录绝对路径,也可以直接写全路径,比如:

# Linux/macOS示例
with open('/home/your_username/data/file.txt', 'r') as f:
    content = f.read()

# Windows示例
with open('C:\\Users\\your_username\\data\\file.txt', 'r') as f:
    content = f.read()

不过这种方法不够通用,换个环境就需要修改路径,不如前两种灵活。

额外提示:检查Jupyter的当前工作目录

你用open('data/file.txt', 'r')失败,也可能是因为Jupyter的当前工作目录不是你的主目录。可以先运行下面的代码查看当前目录:

import os
print(os.getcwd())

如果输出不是你的主目录,要么切换工作目录:

os.chdir(os.path.expanduser('~'))

之后再用open('data/file.txt', 'r')就可以了;要么直接用前面的绝对路径方法。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.26 09:32:16