Python TypeError:对象似乎不是类似文件的对象
我正在尝试访问一个png文件以添加到matplotlib绘图的背景中。我在做这样的事情:Python TypeError:对象似乎不是类似文件的对象,python,image,matplotlib,plot,Python,Image,Matplotlib,Plot,我正在尝试访问一个png文件以添加到matplotlib绘图的背景中。我在做这样的事情: fn = get_sample_data('Jupiterbackground.png', asfileobj=False) img = read_png(fn) 但我收到了这样一个错误: TypeError:对象似乎不是类似文件的对象。 所以我手动输入了这个png文件的路径文件名,看看它是否能工作,但仍然不能工作,所以我假设我选择的文件类型有问题。还是我使用了有缺陷的方法?我也试过了。我也犯了同样的错误
fn = get_sample_data('Jupiterbackground.png', asfileobj=False)
img = read_png(fn)
但我收到了这样一个错误:
TypeError:对象似乎不是类似文件的对象。
所以我手动输入了这个png文件的路径文件名,看看它是否能工作,但仍然不能工作,所以我假设我选择的文件类型有问题。还是我使用了有缺陷的方法?我也试过了。我也犯了同样的错误。但同样的事情也可以用:
import matplotlib.image as mpimg\
img = mpimg.imread('Jupiterbackground.png')
这就给了图像数组一个numpy数组。然后,如果您愿意,您甚至可以使用
img.astype(#datatype)
更改数据类型。我也试过了。我也犯了同样的错误。但同样的事情也可以用:
import matplotlib.image as mpimg\
img = mpimg.imread('Jupiterbackground.png')
这就给了图像数组一个numpy数组。然后,如果您愿意,您甚至可以使用
img.astype(#datatype)
更改数据类型。下次请包括您的导入,我想是这样的
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\u png
需要一个文件对象。您可以使用asfileobj=True
或对从get\u sample\u data
获取的字符串调用open
但我无法让read\u png
工作并获得“OSError:read over the end of file”。但该方法没有文档记录(据我所知),其模块名以下划线开头,这在python约定中意味着它不是公共API的一部分(即:它是matplotlib内部使用的函数)
正如另一个答案所说,使用不同的函数来完成您的任务。下次请包括您的导入,我想是的
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\u png
需要一个文件对象。您可以使用asfileobj=True
或对从get\u sample\u data
获取的字符串调用open
但我无法让read\u png
工作并获得“OSError:read over the end of file”。但该方法没有文档记录(据我所知),其模块名以下划线开头,这在python约定中意味着它不是公共API的一部分(即:它是matplotlib内部使用的函数)
正如另一个答案所说,使用不同的功能来完成任务