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

30

In[1]:

path='/Users/apple/Downloads/train.csv'
open(path).readline()
Out[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'
我很困惑。我认为这段代码与许多教程的代码完全相同,而且我确定我将该文件放在了正确的路径下,但为什么它不起作用呢?

服务器在哪里运行? - Peter Wood
很遗憾,在jupyter的“浏览器视图”中没有可能右键单击任何文件夹并获得菜单选项以在真正的操作系统文件浏览器中打开文件夹。这导致了对于文件和文件夹操作的复杂技巧。话虽如此,你终于找到了一种将文件拖放到头部区域的方法。好消息是:在Windows上,你也可以使用命令!explorer .在单元格中打开工作目录(explorer调用Windows资源管理器,.将初始目录设置为当前目录(否则将使用文档文件夹)。你可以将.替换为任何有效路径。 - mins
14个回答

19

很多教程都说我们应该改变Jupyter的工作流程,但我没弄明白。

最后,我找到了一个简单的方法:只需将文件拖到此部分即可。

在此输入图片描述


如此明显,以至于没有人能看到!谢谢 :) - testing_22

19
这是一个可能的解决方案(使用Python):
假设您有一个名为Notebook.ipynb的笔记本电脑文件。您目前正在该笔记本中工作,并希望访问其周围的其他文件夹和文件。以下是它的路径:
import os
notebook_path = os.path.abspath("Notebook.ipynb")

换句话说,只需使用os模块,获取笔记本的绝对路径(它也是一个文件!)。从那里开始,使用os模块和您的路径进行导航。
例如,如果您的train.csv在名为“数据集”的文件夹中,而笔记本就在该文件夹旁边,您可以像这样获取数据:
train_csv = os.path.join(os.path.dirname(notebook_path), "Datasets/train.csv")
with open(train_csv) as file:
    #....etc

结论是笔记本具有文件名,只要您的语言支持路径名操作(例如Python中的os模块),您就可以使用笔记本文件名。
最后,你的代码失败的原因可能是因为你要么尝试访问本地文件(比如你的Mac的“下载”文件夹),当你在在线笔记本(比如Kaggle)上工作时(它为您托管您的环境,在线和远离您的Mac),要么移动或删除路径中的某些内容。这就是Python中的os模块的目的;它将找到文件的路径,无论它是否在您的Mac或Kaggle服务器上。

10
osX 上,您的路径应该是:
path = "/Users/name/Downloads/filename"

使用name来表示当前登录的用户


9

你正在运行这个程序在Windows还是Linux上?如果是Windows,那么应该使用像C:\\Users\\apple\\Downloads\train.csv这样的路径。如果是Linux,那么可以按照相同的路径。


1
在Windows 10中,不需要使用双反斜杠,例如我使用C:\Users\apple\Downloads\train.csv就可以正常工作。 - MM Khan

7

安装jupyter。 打开终端。进入文件所在的文件夹(在终端中,即cd path/to/folder)。运行jupyter notebook。然后,您会看到类似以下内容:

enter image description here

注意:要在文件夹中打开笔记本,您可以在浏览器中单击它,也可以转到以下地址:

http://localhost:8888/notebooks/name_of_your_file.ipynb

2

在Windows中启动Jupyter Notebook的方法:

  • 打开Windows cmd窗口(按win + R并输入cmd)
  • 切换到所需文件路径(cd 文件路径)
  • 输入命令jupyter notebook

启动Jupyter Notebook后,您可以通过UI进一步导航(如果您没有直接启动正确文件的话)。
或者您可以直接将文件拖放到cmd中打开。

C:\Users\kushalatreya>jupyter notebook "C:\Users\kushalatreya\Downloads\Material\PythonCourseFolder\PythonCourse-DataTypes.ipynb"

2

我建议您首先进行测试:将此train.csv复制到与此Jupyter脚本相同的目录中,然后更改路径以加载train.csv并测试是否可以成功加载。

如果是,则表示先前输入的路径存在问题。

如果不是,则表示文件本身拒绝了您对其的访问权限,或者它的真实文件名可能是其他名称,例如:train.csv.<hidden extension>


2
避免混淆的最简单方法是使用“相对路径”。您可以使用“./”将笔记本电脑的当前文件夹作为根目录。请注意,这需要您将.csv(或其他文件类型)位于实际笔记本保存的文件夹下面或同一文件夹中。这被认为是良好的实践建议。如果您无法将数据保存在笔记本附近,请不要按照以下步骤操作。假设您的Jupyter笔记本位于'C:\Users\User123\python_programs\exampyle\exampyle_notebook.ipynb',您可以直接将'my_data.csv'保存在相同的文件夹中:'C:\Users\User123\python_programs\exampyle\my_data.csv'。
path = './mydata.csv'
  1. 把你的数据整理得更加有条理,放到一个子文件夹中 'C:\Users\User123\python_programs\exampyle\assets\my_data.csv'
path = './assests/mydata.csv'

1
简单的方法是将要读取的文件移动到与你的Python文件相同的文件夹下,然后你只需要使用文件名,而不需要调用另一个路径。

0
在Windows系统中,使用Windows资源管理器进入包含您的文件的指定文件夹。 按住Shift键并右击,选择“在此处打开PowerShell窗口”,然后运行Jupyter-lab(或Jupyter notebook)。
这样做后,所有选定的文件夹文件将出现在Jupyter导航面板中。 祝好!

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接