2

为我的问题的模糊性质道歉,但是我真的不知道该怎么称呼我遇到的问题。因此,我在网上找到了一个示例,该示例解释了如何使用我设法开始工作并可以从 png 文件中读取的 png 模块。所以我可以在python解释器中读取png文件,如下所示。首先将 in_file 定义为感兴趣的 png 文件,然后键入

>>>r=png.Reader(file=in_file)
>>>r.read()
>>>l=list(_[2])

我真的不明白最后一行,谁能解释这是在做什么?我可以看到这以某种方式将 png 数据与列表相关联,l但对细节并不是很清楚。我真正想做的是将它包含在python脚本中,我尝试将它复制到我的脚本中,但它在这一行失败,返回

NameError: name '_' is not defined

再次,如果有人可以解释正在发生的事情以及应该如何调整它,以便它可以在一个非常有帮助的脚本中工作。

4

2 回答 2

5

在交互式解释器中,_是最后一条语句的结果——在本例中是r.read()调用的返回值。这显然不适用于脚本,因为它仅在 python 控制台中可用。只需将返回值分配给其他变量并使用它。

于 2013-11-06T14:10:32.260 回答
0

试试这个,它可能会帮助你理解来自 r.read() 的数据。在上面的代码中,变量“_”未在脚本中定义(如上所述在控制台中可用)。如果您有 reader_list[2],您将获得列表中的第三个条目。

import png

r = png.Reader('png_file.png')
reader_list = list(r.read())
for element in reader_list :
    print(element)

输出:

997
520
<itertools.imap object at 0xb725aa8c>
{'bitdepth': 8, 'interlace': 0, 'planes': 4, 'greyscale': False, 'alpha': True, 'gamma': 0.45455, 'size': (997, 520)}

另请查看文档http://pythonhosted.org/pypng/index.html。希望这可以帮助。

于 2013-11-06T14:21:06.200 回答