解析“IL-2遗忘之战”飞行模拟器专用服务器生成的日志中的事件

il2fb-events-parser的Python项目详细描述


pypi_packagepypi_downloadsSupported versions of Pythonlicense

unix_buildBuild status of the master branch on WindowsTest coverage

Code issuesCode ClimateCodacy Code ReviewScrutinizer Code QualityCode HealthRequirements Status

目录

概要

这是一个python库,它从专用 “IL-2遗忘之战”飞行模拟器服务器。结果信息 about事件存储在特殊的数据结构中。

演示

即使您不理解这个库的用途,也可以看到它正在运行。

你只需要visit project’s demo page

该页面允许您测试解析器处理字符串的能力。如果你 不知道要在文本区域中输入什么,可以单击Insert test data 然后分析它。

如果出现问题,系统将提示您确认自动创建 错误报告将是 listed on this page

已知事件

此库支持专用服务器生成的所有已知事件 (129个独特事件)。

要查看他们的列表,请转到demo page并单击 See the list of supported events链接。

安装

从pypi获取python包:

pip install il2fb-events-parser

用法

如果需要能够解析此库知道的所有事件,请使用 EventsParser.parse_string()

导入EventsParser并创建其实例:

fromil2fb.parsers.eventsimportEventsParserparser=EventsParser()

分析字符串以获取事件的实例:

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'}

例外情况

如果试图分析未知事件,将引发EventParsingError

parser.parse("foo bar")# Traceback (most recent call last):# …# EventParsingError: No event was found for string "foo bar"

当前支持的事件列表已相当满,但EventParsingError是 很有可能,因为服务器的事件没有记录,而这个库可能 不知道他们所有人。

如果需要捕获此错误,其全名为 il2fb.parsers.events.exceptions.EventParsingError

安全使用

如果不关心任何异常,可以设置标志ignore_errors=True

fromil2fb.parsers.eventsimportEventsParserparser=EventsParser()event=parser.parse("foo bar",ignore_errors=True)print(eventisNone)# True

任何错误(除了SystemExitKeyboardInterrupt)都将被静音,并且 None将被返回。

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java能否使用OpenJPA将一个实体持久化到多个持久化单元?   java如何访问当前按下的键   java singleton是否意味着哈希代码总是返回相同的值?   inputstream无法在Java中同时使用STDIN和STDERR读取程序输出   java运行时有多贵。getRuntime()与获取内存度量相结合   java AndroidStudio ListView适配器更新   java小程序请求未扩展实时会话   java是设置布尔值所必需的关键部分?   java比较两个字符串,并突出显示发现的不匹配项   java带抽屉布局,无论哪个屏幕处于活动状态,如何在按下后退键时关闭应用程序?   爪哇:颜色有什么区别。黑色和彩色。黑色   Velocity模板中子类的java访问方法   java如何快速学习Drools或其他规则引擎   从Java应用程序访问时缓存数据库查询结果   java cassandra nodetool JPLISAgent。c错误   java我正在解析一个没有pubDate的RSS提要,有没有其他方法可以确定一个项目是何时发布的?