2017-07-17 28 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

回答

相關問題