2017-07-17 11 views
0

ファイルを解析する方法についてのアドバイスをいただければ幸いです。私は別のパーティーによって生成されたファイルを持っており、それはデータのダンプです。私は、ファイルを解析するためにPythonを使用することを好むだろうが、Cベースのメソッドが簡単になるなら、私はそれを使用します。ファイルは、形式のASCIIテキスト、次のとおりです。Pythonを使用してファイルを解析するための最良の方法

Sequence { 
Target ManualDump 
Camera xxxx 
Timestamp "20170623133425" 
ID NULL 
FrameSize.x 512 
FrameSize.y 512 
Frames 
[ { 
SequenceNumber 0 
frameStart "23/06/2017 13:32:29.707459" 
Stars 
[ 
] } { 
SequenceNumber 1 
frameStart "23/06/2017 13:32:34.767027" 
Stars 
[ { 
Catalog "YYYYY" 
Index 13016559 
Name NULL 
} { 
Catalog "YYYYY" 
Index 13016572 
Name NULL 
} 
] } { 
SequenceNumber 2 
frameStart "23/06/2017 13:32:39.826595" 
Stars 
[ { 
Catalog "YYYYY" 
Index 13016559 
Name NULL 
} { 
Catalog "YYYYY" 
Index 13016572 
Name NULL 
} 
] } 
] } 

私はフレームがあり、たとえば、などのシーケンス、フレーム、スターズ、の定義を持っている:

Frame 
{ 
    SequenceNumber INTEGER 
    FrameStart STRING            
    FrameStop STRING            
    FieldDerotationDegrees FLOAT         
    BoresightDegrees STRUCTURE TelescopeCoord      
    BoresightSkyPos STRUCTURE SkyCoord       
    Stars ARRAY STRUCTURE Star         
    BoresightCoord STRUCTURE PixelCoord       
} 

は私が収まるようにいくつかの詳細をトリミングしましたしかし、私は何か重要なものを削除しているとは思わない。

おそらく、このファイルを解析するために書かれたパーサーがあったかもしれませんが、仕事のために思われるパッケージ/ツールを推薦できるかどうかは疑問でした。

ありがとうございます。

+1

のための自然な候補者を探しますが、私はあなたがあなた自身をロールバックする必要があります疑い。あなたはそれをJSONなどに変換しようとすることもできますが、それはおそらく少なくとも多くの作業になります。 – TemporalWolf

+0

第三者に、JSONやYAMLなどの共通の形式でデータを提供するよう依頼できますか? –

+0

私はあなたが定義しているので、 'json.loads()'を使うのが一番良いと思います。次に、得られた辞書をkwargsとして '__init__'に渡し、それに応じてインスタンスを構築します。 – nutmeg64

答えて

1

これは、これは一般的な形式ではありませんが与えられpyparsing

関連する問題