【问题标题】:ipython notebook - uploading from and saving to subdirectories?ipython 笔记本 - 从子目录上传和保存到子目录?
【发布时间】:2014-04-01 21:10:17
【问题描述】:

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"

【问题讨论】:

  • 你执行了这条线吗?如果出现错误,您应该会看到一条错误消息...
  • 是的。没有错误。除了一个空的方形框图像之外,什么都没有弹出。
  • 也许这就是图片的内容?无论如何,你为什么不把这个包括在问题中?我们没有看到这个弹出窗口,你知道...
  • 请注意,ipython 也可能会自动缩小图像以进行显示。因此,如果这是一个巨大的图表,则缩放可能最终只保留节点之间的所有白色。
  • 查看描述和代码中图像的路径,您是不是在代码中的图形之前缺少一个“/”?

标签: python ipython ipython-notebook


【解决方案1】:

IPython 的 Image 显示对象接受三种参数

首先是原始图像数据(例如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 数据嵌入

#3 是最混乱的根源。如果你传递一个不存在的文件名, 你会得到一个损坏的图像:

Image("/Graphs/graph.png")

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

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

An example notebook 说明了这些事情。

【讨论】:

  • 谢谢。原始图像数据选项有效!相反,如果我想保存到子目录,有没有类似的方法可以做到这一点?
  • 在所有这些情况下,它都位于子目录中 - Graphs 是与笔记本文件相邻的目录。如果你想让它嵌套更深,只需使用any/other/subdir/graph.png
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-04-21
  • 1970-01-01
  • 2013-03-18
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多