2011-11-08 7 views

答えて

2

多項式で述べたように、2番目の方法ではファイル全体がRAMに読み込まれます。これはRAMの方が良いかもしれません。

しかし、別の解決策があります:

with open('file.txt') as file: 
    for line in file: 
     print(re.sub('windows', 'linux', line)) 

これは、ファイルはもはやそれを必要としない直後に閉鎖されることを保証しますが。

Similiarly、

with open('file.txt') as file: 
    print(re.sub('windows', 'linux', file.read())) 

も同様に使用することができます。

+0

ファイルを開いたままにする元のバージョンとは対照的に、この*を使用する必要があります。あるいは、追加のコード行が必要になります。それにもかかわらず、これはより読みやすくなります。 – rplnt

1

私の標準では最初の方が読みやすくなりますが、1行に1つのファイル読み取り操作が行われます。基本的にはメモリに応じてより効率的です(各行は1つのバッファを再割り当てし、ファイル全体をメモリにロードするだけです)。

2番目の方法は醜いですが、IO効率は向上します。

すべての場合、それほど大きな違いはありません。

関連する問題