我正在使用PyQRCode [0]在Python 2.7.6下生成PNG格式的QR。
当我尝试使用所有正常工作在磁盘上写入文件时:
import pyqrcode
from io import BytesIO
qr = pyqrcode.create("my qr string", mode='binary', version=7)
qr.png("myqr.png", scale=4)
但是当我尝试使用此代码使用io流时:
import pyqrcode
from io import BytesIO
qr = pyqrcode.create("my qr string", mode='binary', version=7)
f=BytesIO()
qr.png(f, scale=4)
f.getvalue()
我上了f.getvalue()
行:
Traceback (most recent call last):
File "<input>", line 1, in <module>
ValueError: I/O operation on closed file.
PyQRCode文档说file
参数可以是可写的流。
我努力调试这个,但我找不到流被关闭的位置,并且没有任何流的.close()语句。 [1]
[0] https://pypi.python.org/pypi/PyQRCode
[1] http://pythonhosted.org//PyQRCode/_modules/pyqrcode.html#QRCode.png
答案 0 :(得分:1)
这是PyQRCode中的一个错误,在Github回购中有一个PR(尚未合并)解决了这个问题: