3

質問: 既存のファイルを上書きせずに、またファイル全体をメモリに読み込まずに、ファイルの先頭にある既存のファイルにデータを書き込むにはどうすればよいですか? (例: プリペンド)


情報:

現在、プログラムが頻繁にデータをファイルにダンプするプロジェクトに取り組んでいます。このファイルは、すぐに 3 ~ 4GB まで膨れ上がります。このシミュレーションは、RAM が 768 MB しかないコンピューターで実行しています。そのすべてのデータを何度も RAM にプルすることは、非常に苦痛であり、時間の無駄になります。シミュレーションは、そのまま実行するのに十分な時間がかかります。

ファイルは、それが作成するダンプの数が最初に6などの単純な値でリストされるように構成されています。プログラムが新しいダンプを作成するたびに、それを増やしたいので、今は7です。問題は10 番目、100 番目、1000 番目などのダンプ。プログラムは問題なく 10 を入力しますが、次の行の最初の文字を削除します。

"9\n580,2995,2083,028\n..."

"10\n80,2995,2083,028\n..."

明らかに、この場合の 580 と 80 の差は重要です。これらの値を失うことはできません。そのため、データを失ったり、ファイル全体をプルアップしてから書き直したりすることなく、この新しいデータを追加できるように、そこに少しスペースを追加する方法が必要です。

基本的に私が探しているのは、一種のプリペンド関数です。ファイルの末尾ではなく先頭にデータを追加するもの。

Python でプログラミング

~n

4

3 に答える 3

2

次の質問に対する回答を参照してください: Python でテキスト ファイルを変更するにはどうすればよいですか?

要約: ファイルを読み込まないと実行できません (これは、Python の制限ではなく、オペレーティング システムの動作によるものです)。

于 2010-06-16T14:02:24.753 に答える
1

元の質問に対処するものではありませんが、考えられる回避策がいくつかあります。

  • SQLite を使用します (Python にバンドルされています)。
  • RDBMS または NoSQL のいずれかのより洗練されたデータベースを使用する
  • 別のテキスト ファイルでダンプの数を追跡するだけです

最初の 2 つのオプションは、前もって少し作業が必要ですが、柔軟性が向上します。最後のオプションは、現在の問題に対する最も簡単な解決策です。

于 2010-06-16T14:05:03.267 に答える
0

新しいファイルを簡単に作成し、そのファイルの先頭に追加するデータを出力してから、既存のファイルの内容をコピーして新しいファイルに追加し、名前を変更できます。

これにより、それが主な問題である場合、ファイル全体を読み取る必要がなくなります。

于 2010-06-16T14:03:39.103 に答える