0

私のpythonプログラムのいくつかは、

  1. ハッシュテーブルにフォーマットします(したがって、私はdict()中毒です;-))「ソース」テキストファイルのいくつかの情報、および

  2. そのテーブルを使用して「ターゲット」ファイルを変更します。私の懸念は、私が通常処理する「ソース」ファイルが非常に大きくなる可能性があるため (数 GB)、解析に 10 秒以上かかり、そのプログラムを何度も実行する必要があることです。結論として、新しい「ターゲット」を変更する必要があるたびに、同じ大きなファイルをリロードするのはもったいないと感じています。

私の考えは、pythonがはるかに高速に読み取り/処理できるように、「ソース」ファイルから作成されたdict()を一度書き込むことができれば(RAMで使用されるものに近いフォーマットについて考える) by python)、それは素晴らしいことです。

それを達成する可能性はありますか?

ありがとうございました。

4

2 に答える 2

4

はい、marshaldict を使用することも、 を使用することもできますpickle。特に速度に関する 2 つの違いについては、この質問を参照してください。

于 2012-08-10T21:20:45.650 に答える
0

pickleはそのようなことに対する通常の解決策ですが、保存されたデータを編集できることに価値がある場合、および辞書が文字列や数値などの単純な型のみを使用する場合 (ネストされた辞書やリストも問題ありません)、単純に次のように記述できます。repr()辞書の をテキスト ファイルに変換し、(または、できれば ) を使用してそれを解析して Python 辞書に戻しeval()ますast.literal_eval()

于 2012-08-10T22:20:35.900 に答える