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
}
我已經削減了部分細節,以適應,但我不認爲我被刪除了任何重要的東西。
我大概可以修補一個已經寫過的解析器來解析這個文件,但我想知道是否有人可以推薦一個看起來適用於這個工作的包/工具。
謝謝。
一個自然的候選,這不是在一個共同的格式,我懷疑你將不得不推出自己的。你可以嘗試將它轉換爲JSON或類似的東西,但這可能至少是同樣多的工作。 – TemporalWolf
您可以要求第三方以通用格式(如JSON或YAML)提供數據嗎? –
我認爲,既然你有定義,使用'json.loads()'將是最好的。然後將生成的字典作爲kwargs傳遞給'__init__'並相應地構建實例。 – nutmeg64