解析“IL-2遗忘之战”飞行模拟器专用服务器生成的游戏日志中的事件
il2fb-game-log-parser的Python项目详细描述
目录
概要
这是一个python库,它从 “IL-2遗忘之战”飞行模拟器专用服务器。结果 有关事件的信息存储在特殊的数据结构中。
演示
即使您不理解这个库的用途,也可以看到它正在运行。
你只需要visit project’s demo page。
该页面允许您测试解析器处理字符串的能力。如果你 不知道要在文本区域中输入什么,可以单击Insert test data 然后分析它。
如果出现问题,系统将提示您确认自动创建 错误报告将是 listed on this page。
安装
从pypi获取python包:
pip install il2fb-game-log-parser
用法
如果需要能够解析此库知道的所有事件,请使用 GameLogEventParser.parse_string():
导入GameLogEventParser并创建其实例:
fromil2fb.parsers.game_logimportGameLogEventParserparser=GameLogEventParser()
分析字符串以获取事件的实例:
event=parser.parse("[8:33:05 PM] User0 has connected")
探索活动的内部结构:
print(event)# <Event: HumanHasConnected>print(event.time)# datetime.time(20, 33, 5)print(event.actor)# <Human 'User0'>print(event.actor.callsign)# User0
将事件转换为字典:
importpprintpprint.pprint(event.to_primitive())# {'actor': {'callsign': 'User0'},# 'name': 'HumanHasConnected',# 'time': '20:33:05',# 'verbose_name': 'Human has connected'}
例外情况
如果试图分析未知事件,将引发EventParsingException:
parser.parse("foo bar")# Traceback (most recent call last):# …# EventParsingException: No event was found for string "foo bar"
当前支持的事件列表已相当满,但是EventParsingException 很有可能,因为服务器的事件没有文档记录,而且这个库 可能不知道所有这些。
如果需要捕获此错误,其全名为 il2fb.commons.events.EventParsingException。
安全使用
如果不关心任何异常,可以设置标志ignore_errors=True:
fromil2fb.parsers.game_logimportGameLogEventParserparser=GameLogEventParser()event=parser.parse("foo bar",ignore_errors=True)print(eventisNone)# True
任何错误(除了SystemExit和KeyboardInterrupt)都将被静音,并且 None将被返回。