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