これは のStreamReaderWriter
仕組みによるものです。これを行うreadline()
と、空ではない a がいっぱいになり、linebuffer
を呼び出しread()
てコードを読み取ると、入力ファイルで機能codecs.py
する a を指定しない限り、バッファにあるものは何でも返されます。size
os.path.getsize
のヒントとして使用する場合read()
:
>>> import os
>>> a = codecs.open('test.txt', 'r', 'utf-8'); a.readline(); a.read(os.path.getsize('test.txt'))
u'1572278\n'
u'#*OQL[C++]: Extending C++ with an Object Query Capability.\n#@Jos\xe9 A. Blakeley\n#year1995\n'
あなたはファイルを丸呑みしているので; StringIO
最初にそれを行い、上で使用できます。
>>> import StringIO
>>> a = codecs.open('test.txt', 'r', 'utf-8');
>>> buff = StringIO.StringIO(a.read())
>>> buff.readline()
u'1572278\n'
>>> buff.read()
u'#*OQL[C++]: Extending C++ with an Object Query Capability.\n#@Jos\xe9 A. Blakeley\n#year1995\n'
もう 1 つの簡単な解決策は、read()
2 回呼び出すことです。1 回目はバッファリングされた出力を取得し、もう 1 回は残りを丸呑みします。
>>> a = codecs.open('test.txt', 'r', 'utf-8'); a.readline(); a.read() + a.read()
u'1572278\n'
u'#*OQL[C++]: Extending C++ with an Object Query Capability.\n#@Jos\xe9 A. Blakeley\n#year1995\n'