3

各行が簡単に解析できる配列の文字列表現になるように、Python を使用してデータをフラット ファイルとして保存する簡単なソリューションを探しています。

Pythonにはそのようなタスクを簡単に実行するためのライブラリがあると確信していますが、これまでに見つけたすべてのアプローチは、それを機能させるのが面倒だったようで、より良いアプローチがあると確信しています. これまでのところ、私は試しました:

  • array.toFile() メソッドを使用しましたが、文字列のネストされた配列で動作させる方法を理解できませんでした。整数データを対象としているようです。
  • リストとセットには toFile メソッドが組み込まれていないため、手動で解析してエンコードする必要がありました。
  • CSV は良いアプローチのように思えましたが、これも手動で解析する必要があり、最後に単純に新しい行を追加することはできませんでした。そのため、CSVWriter を新しく呼び出すと、ファイルの既存のデータが上書きされます。

Python以外のソフトウェア前提条件を持たないようにこれを開発しようとしているため、データベースの使用を本当に避けようとしています(SQLiteかもしれませんが、少しやり過ぎのようです)。

4

5 に答える 5

6

http://docs.python.org/library/pickle.html

于 2009-05-17T19:13:10.653 に答える
4

ファイルは人間が読める必要がありますか? そうでない場合、shelfは非常に使いやすいです。

于 2009-05-17T19:15:45.530 に答える
2

各行が簡単に解析できる配列の文字列表現になるように、Python を使用してデータをフラット ファイルとして格納する簡単なソリューションを探しています。

データは Python プログラムによってのみ解析されますか? そうでない場合、pickle など (shelve と marshal) は Python 固有であるため、避けます。JSON と YAML には、ほとんどの言語でパーサーを簡単に利用できるという重要な利点があります。

于 2009-05-17T21:16:12.843 に答える
1

SourceForgeのこのソリューションは、標準のPythonモジュールのみを使用します。

y_serial.pyモジュール::SQLiteを使用したPythonオブジェクトのウェアハウス

「シリアル化+永続性::数行のコードで、Pythonオブジェクトを圧縮してSQLiteに注釈を付けます。その後、SQLを使用せずにキーワードで時系列に取得します。データベースがスキーマレスデータを格納するための最も便利な「標準」モジュールです。」

http://yserial.sourceforge.net

SQLiteは「やり過ぎ」ではありません。SQLiteがいかにシンプルであるかに驚かれることでしょう。さらに、より一般的なデータの永続性の問題を解決します。

于 2009-09-13T05:29:56.700 に答える