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] がある場合、リストの 3 番目のエントリを取得します。

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 に答える