TypeError:对象似乎不是类似文件的对象

2024-10-03 00:29:17 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在尝试访问一个png文件以添加到matplotlib绘图的背景中。我在做这样的事情:

fn = get_sample_data('Jupiterbackground.png', asfileobj=False)
img = read_png(fn)

但我收到了这样一个错误: TypeError:对象似乎不是类似文件的对象。 所以我手动输入了这个png文件的路径文件名,看看它是否能工作,但仍然不能工作,所以我假设我选择的文件类型有问题。还是我使用了一种有缺陷的方法


Tags: 文件sample对象false绘图imgdataget
2条回答

下次请包括你的进口,我想是的

from matplotlib._png import read_png
from matplotlib.cbook import get_sample_data
fn = get_sample_data('Jupiterbackground.png', asfileobj=False)
img = read_png(fn)

fn是一个字符串,因为您使用了asfileobj=False(您可以使用print(fn, type(fn))检查这一点,这通常是查找TypeErrors的好方法),并且read_png需要一个文件对象。您可以使用asfileobj=True或对从get_sample_data获得的字符串调用open

但我无法让read_png工作并获得“OSError:读取超过文件末尾”。但该方法没有文档记录(据我所知),其模块名以下划线开头,这在python约定中意味着它不是公共API的一部分(即:它是matplotlib内部使用的函数)

正如另一个答案所说,使用不同的功能来完成任务

我也试过了。我也犯了同样的错误。但同样的事情也可以用:

import matplotlib.image as mpimg\
img = mpimg.imread('Jupiterbackground.png')

这就给了图像数组一个numpy数组。如果需要,甚至可以使用img.astype(#dataType)更改数据类型

相关问题 更多 >