私はいつもopen
とio.open
は互換性があると思いました。バグまたは機能:openとio.openは互換性がありません
import ctypes, io
class POINT(ctypes.Structure):
_fields_ = [("x", ctypes.c_int),("y", ctypes.c_int)]
# THIS WORKS
with open("mypoints.bin", "wb") as f:
for i in range(10):
p = POINT(i,10-i)
print p.x, p.y
f.write(p)
# THIS FAILS
with io.open("mypoints.bin", "wb") as f:
for i in range(10):
p = POINT(i,10-i)
print p.x, p.y
f.write(p)
0 10
Traceback (most recent call last):
File "D:\test.py", line 10, in <module>
f.write(p)
File "c:\Python26\lib\io.py", line 1070, in write
self._write_buf.extend(b)
TypeError: 'POINT' object is not iterable
注:私はこのスニペットを信じるならば
はどうやらない、私ははい、それは "バグ" やPython 2.6でio.open
が少し壊れているのですPythonの2.6.6
私はこのバグがPython 2.7で修正されたことを確認します。どうもありがとう。 – Alain