如何在Jupyter上打开本地文件?

新手上路,请多包涵

在[1]中:

 path='/Users/apple/Downloads/train.csv'
open(path).readline()

出[1]:

 FileNotFoundError                         Traceback (most recent call
last)
<ipython-input-7-7fad5faebc9b> in <module>()
----> 1 open(path).readline()

FileNotFoundError: [Errno 2] No such file or directory:
'/Users/apple/Downloads/train.csv'

我很困惑。我认为这段代码与许多教程完全相似,而且我确信我在正确的路径中有这个文件,但为什么它不起作用?

原文由 bytefish 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 990
1 个回答

这是一个可能的解决方案(在 Python 中):

假设您有一个文件名为 Notebook.ipynb 的笔记本。您当前正在该笔记本中工作,并希望访问它周围的其他文件夹和文件。这是它的路径:

 import os
notebook_path = os.path.abspath("Notebook.ipynb")

换句话说,只需使用 os 模块,并获取笔记本的绝对路径(它也是一个文件!)。从那里,使用 os 模块和您的路径进行导航。

例如,如果您的 train.csv 位于名为“Datasets”的文件夹中,而笔记本就位于该文件夹旁边,您可以获得这样的数据:

 train_csv = os.path.join(os.path.dirname(notebook_path), "Datasets/train.csv")
with open(train_csv) as file:
    #....etc

要点是笔记本有一个文件名,只要您的语言支持路径名操作(例如 Python 中的 os 模块),您就可以使用笔记本文件名。

最后,您的代码失败的原因可能是因为您在使用在线笔记本(例如 Kaggle,它为您托管环境,在线和远离您的 Mac),或者您移动或删除了该路径中的某些内容。这就是 Python 中的 os 模块的目的;它会找到文件的路径,无论它是在你的 Mac 上还是在 Kaggle 服务器上。

原文由 user4234032 发布,翻译遵循 CC BY-SA 4.0 许可协议

推荐问题