区切り線を使用して区切られたファイルがあります(.
)。私はこのファイルを改行の代わりに.
の存在に基づいていなければならないという行ごとに読んでみたい。改行の区切り文字を指定してファイルを読む
f = open('file','r')
for line in f.read().strip().split('.'):
#....do some work
f.close()
しかし、私のファイルが大きすぎる場合、これは、メモリ効率的ではありません。
一つの方法です。ファイル全体を読むのではなく、1行ずつ読む必要があります。
open
は、パラメータ 'newline'をサポートしていますが、このパラメータは前述のhereのように入力としてNone, '', '\n', '\r', and '\r\n'
しか使用しません。
ファイルを効率よく読み込む方法はありますか?あらかじめ指定された区切り文字に基づいていますか?
名言@NPE!シンプルで、魅力的に機能します。 –
外部ループの開始を 'iter(functools.partial(f.read、4096)、 ''):buf + = chunk'のチャンクに変更し、' if buf:yield buf'を追加することで、ループの後(内側ではない)。 – Harvey