from __future__ import print_function import io import sys def test(copen): fp = copen('wtf.bin', 'wb') fp.write(b'\x00' * 8192) fp.close() fp = copen('wtf.bin', 'r+b') print('write:', fp.write(b'\x00' * 4097)) print('tell before last read', fp.tell()) print('last read len:', len(fp.read(1))) # fp.seek(fp.tell()) # don't help print('tell:', fp.tell()) print('truncate:', fp.truncate()) print('tell again:', fp.tell()) print('Python {}.{}'.format(*sys.version_info[:2])) print() print('Test with builtin open:') test(open) print() print('Test with io.open:') test(io.open)