ipython笔记本 - 从子目录上传并保存到子目录?

时间:2014-02-28 17:54:41

标签: python ipython ipython-notebook

Change IPython working directory Inserting image into IPython notebook markdown

嗨,我已经阅读了上面的两个链接,第二个链接似乎最相关。这个人描述的内容 - 简单地调用子目录 - 对我来说不起作用。例如,我在'/Graphs/gephi.png'中有一个图像'gephi.png' 但是当我写下面的内容时

from IPython.display import Image
path = "/Graphs/gephi.png"
i = Image(path)
i

没有图像弹出 - 是的。没错。除了空的方框图像外,什么都没有弹出。

澄清: 当我将图像移动到常规导演时,图像弹出正常。 我唯一的代码更改是path =“gephi.png”

1 个答案:

答案 0 :(得分:1)

IPython的图像显示对象有三种参数

第一个是原始图像数据(例如open(filename).read()的结果:

with open("Graphs/graph.png") as f:
    data = f.read()
Image(data=data)

第二个模型是从文件名加载图像。这在功能上与上面相同,但是IPython从文件中读取:

Image(filename="Graphs/graph.png")

第三种形式是传递URL。可以使用外部URL,但相对URI将提供相对于笔记本自己的目录的文件:

Image(url="Graphs/graph.png")

如果你不告诉IPython你指定了哪一个,并且你只是在位置上传递一个参数,那么这可能会让人感到困惑:

Image("Graphs/graph.png")

IPython尝试猜测你在这种情况下的意思:

  1. 如果路径指向现有文件,请将其用作文件名
  2. 如果它看起来像一个URL,请将其用作URL
  3. 否则,将字符串嵌入为原始png数据时回退
  4. #3是最混乱的根源。如果你传递一个不存在的文件名, 你会得到一个破碎的图像:

    Image("/Graphs/graph.png")
    

    请注意,本地文件的URL必须是相对的。绝对网址通常是错误的:

    Image(url="/Graphs/graph.png")
    

    An example notebook说明了这些事情。