大きなファイル、100,000行があります。私は各行を読んでそれを処理することができます。あるいは、行を配列に格納して処理することができます。私は余分な機能のために配列を使用することを好むだろうが、私は本当に配列にその多くの行を格納することに関連付けられているメモリ使用量、そしてそれが価値がある場合は心配です。大きなファイルを1行ずつ読み込む、またはその行を配列に格納する
6
A
答えて
3
2つの機能があります。
最初はfile()
で、ファイル全体を配列要素に読み込み、各行を配列要素として読み取ります。これは短いファイルには適しており、おそらく100k行ファイルで使用したいものではありません。この関数は独自のファイル管理を処理するため、ファイルを明示的に開いたり閉じたりする必要はありません。
fgets()
は、一度に1行ずつファイルを読み取るために使用できます。これを使用して、処理する行がさらにある限りループし、ループ内で行処理を実行することができます。このファイルのハンドルを取得するにはfopen()
を使用する必要があります。リカバリ管理のためにファイルポインタを自分自身で追跡する必要があります(つまり、何かが横になりスクリプトが失敗した場合に処理を最初からやり直す必要はありません)。
これで十分です。
1
2つの組み合わせはどうですか?配列に1000行を読み込んで処理し、配列を削除してから1000個以上を読み込みます。メモリの使用状況を監視し、一度に配列に読み込む数を調整します。
関連する問題
- 1. オブジェクトを行ごとに配列に格納しながらファイルを1行ずつ読み込みます。
- 2. テキストファイルを1行ずつ読み込んでオブジェクトを配列に格納する
- 3. node.jsの配列に1行ずつファイルを読み込む方法
- 4. テキストファイルを1行ずつ読み込み、AS3の配列にプッシュ
- 5. ファイルを1行ずつ読み込むときのパフォーマンス対ファイル全体を読み込むときの比較
- 6. 大きなファイルをRustで1行ずつ読む
- 7. 配列を1行ずつ読み込み3値を3値
- 8. ファイルを読み込み、javaの異なる配列に異なる行のデータを格納する方法は?
- 9. ファイルを1行ずつ読み込むための「反応的な」方法
- 10. asyncioでファイルを1行ずつ読み込みます
- 11. d行内の行の配列にファイルを読み込む
- 12. ログファイルからphpファイルに1行ずつ読み込みたい
- 13. ファイルに格納されたnxn行列の並列読み込み
- 14. 数字のテキストファイルを1行ずつ読み込み、それをC言語の配列に格納する方法は?
- 15. バッチファイル:ディレクトリからファイル名を読み込み、配列に格納
- 16. 文字を1文字ずつ読み込み、文字を2次元配列に格納します。OCaML
- 17. intデータをchar配列に格納して読み込む
- 18. ファイルを1行ずつ読み込んでJavaプログラムを実行
- 19. TSVファイルを空白の列で1行ずつ読み込みます
- 20. テキストファイルを1行ずつ読み込む方法は?
- 21. ファイルを(utf-8ではなく)1行ずつ読み込みますか?
- 22. 多くのファイルを1つの配列に読み込む - Python
- 23. ファイルを1行ずつ読み込み、可変長の行を印刷する
- 24. XMLファイルを1行ずつ読む
- 25. TXTファイルを1行ずつ読む - Python
- 26. ファイルから読み込んで配列に格納するC++
- 27. 読み込み用の配列にSVGオブジェクトを格納する
- 28. 範囲を指定せずにデータ行を1つずつ読み込む
- 29. ファイルを1行ずつ読み込み、各行を分割する方法
- 30. 外部ファイルから行を読み込んで配列を配列に格納する
この操作は一度だけ行う必要がありますか、多くの同時Webユーザーがこの操作をトリガーしますか?そして多くの場合、ファイルの内容をデータベースに保存してみませんか? –
'SplFileObject'を使って、テキストライン(イテレータ)への配列のようなアクセスを得ることができます。 – mario
おそらく、あなたの問題に対するより良いアプローチが見つかりませんでした。ごくまれに、メモリに100 000本の線を同時に開く必要があります。これを行う他の方法を考えてみましょう。あなたは既存の計画にパフォーマンスの問題があるでしょう。 – Incognito