需要帮助理解的例子

时间:2013-11-06 14:05:02

标签: python

对于我的问题含糊不清的性质道歉,但我真的不知道该怎么称呼我所拥有的问题。所以,我在网上找到了一个例子,解释了如何使用我设法运行的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

再次,如果有人能够解释发生了什么以及如何调整它,以便它可以在一个非常有用的脚本中工作。

2 个答案:

答案 0 :(得分:5)

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

答案 1 :(得分: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。希望这会有所帮助。