我正在尝试创建一个简单的Jupyter Notebook here。在我的代码中,我必须加载位于home
中Redirect
目录中的文件file.txt
/data
代码
data/file.txt
或
open('data/file.txt', 'r')
我收到错误
FileNotFoundError:[Errno 2]没有这样的文件或目录:'〜/ data / file.txt'
答案 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")