无法访问主目录中的文件(Jupyter Notebook)

时间:2018-04-29 14:43:04

标签: python jupyter-notebook

我正在尝试创建一个简单的Jupyter Notebook here。在我的代码中,我必须加载位于home

Redirect目录中的文件file.txt
/data

代码

data/file.txt

open('data/file.txt', 'r')

我收到错误

  

FileNotFoundError:[Errno 2]没有这样的文件或目录:'〜/ data / file.txt'

2 个答案:

答案 0 :(得分:1)

您可以使用os.path.expanduser功能访问您的主目录,以获取主目录的名称。

import os
import os.path

# Create data directory
try:
    os.makedirs(os.path.join(os.path.expanduser('~'), 'data'))
except OSError:
    pass

# Write to file
with open(os.path.join(os.path.expanduser('~'), 'data/file.txt'), 'w') as f:
    f.write('Hello world')

# Read from file    
with open(os.path.join(os.path.expanduser('~'), 'data/file.txt')) as f:
    print(f.read())

Hello world

答案 1 :(得分:1)

默认情况下,Jupyter笔记本总是在启动笔记本的目录上运行,因此您应该通过它的相对路径引用该文件(./

EG。这有效:

with open('./data/file.txt') as f:
    for line in f.readlines():
        print(line.strip())

因此,使用./<any_dirpath>/<file>可以在本地jupyter安装上运行。

如果您使用的是活页夹或任何远程站点,则主目录不是您的本地目录,而是远程目录,因此除非您上传正在使用的文件,否则您将无法读取它。

您可以通过运行来检查当前目录:

import os
print(os.getcwd() + "\n")