[解決済み】大きなテキストファイルをメモリに読み込まずに一行ずつ読むにはどうしたらいいですか?
2022-03-30 18:17:41
質問
大きなファイルを一行ずつ読む必要があります。例えば、そのファイルが5GB以上あり、各行を読み取る必要があるとします。
readlines()
なぜなら、メモリ上に非常に大きなリストが作成されるからです。
この場合、以下のコードはどのように動作するのでしょうか?はたして
xreadlines
を1つずつメモリに読み込んでいるのでしょうか?ジェネレータ式は必要ですか?
f = (line for line in open("log.txt").xreadlines()) # how much is loaded in memory?
f.next()
さらに、これを逆順に読むにはどうしたらいいかというと、ちょうどLinuxの
tail
コマンドを使用します。
見つけました。
http://code.google.com/p/pytailer/
そして
" テキストファイルの行単位での Python 先頭、後尾、後方読み出し "
どちらもとてもうまくいきました
解決方法は?
Keithの回答は簡潔ですが、ファイルを閉じていないため、この回答を提供しました。 明示的に
with open("log.txt") as infile:
for line in infile:
do_something_with(line)
関連
-
Pythonコンテナのための組み込み汎用関数操作
-
PythonはWordの読み書きの変更操作を実装している
-
[解決済み】Pythonスクリプトで「Expected 2D array, got 1D array instead: 」というエラーが発生?
-
[解決済み】TypeErrorを取得しました。エントリを持つ子テーブルの後に親テーブルを追加しようとすると、 __init__() missing 1 required positional argument: 'on_delete'
-
[解決済み] Pythonで改行(行継続)をするにはどうしたらいいですか?
-
[解決済み] テキストファイルを文字列変数に読み込んで、改行を除去するには?
-
[解決済み] Pythonで大きなファイルの行数を安価に取得する方法は?
-
[解決済み] 2次元アレイにおけるピーク検出
-
[解決済み] コマンドライン引数の読み方・処理方法は?
-
[解決済み] 大きなファイルを一行ずつ読むには?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
opencvとpillowを用いた顔認証システム(デモあり)
-
PicgoのイメージベッドツールをPythonで実装する
-
PythonはWordの読み書きの変更操作を実装している
-
Pythonの@decoratorsについてまとめてみました。
-
[解決済み】Python regex AttributeError: 'NoneType' オブジェクトに 'group' 属性がない。
-
[解決済み】 NameError: グローバル名 'xrange' は Python 3 で定義されていません。
-
[解決済み] 'DataFrame' オブジェクトに 'sort' 属性がない
-
[解決済み】SyntaxError: デフォルト以外の引数がデフォルトの引数に続く
-
[解決済み】ImportError: bs4という名前のモジュールがない(BeautifulSoup)
-
[解決済み】django インポートエラー - core.managementという名前のモジュールがない