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



更改IPython工作目录将图像插入IPython笔记本降价

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

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

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

澄清:当我将图像移动到常规导演时,图像会很好地弹出。我唯一的代码更改是path="gephi.png">

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数据

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

Image("/Graphs/graph.png")

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

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

举例说明这些事情的笔记本。

最新更新