解析“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如何向第二个组合框模型项添加数组值从第一个组合框所选项获取数组名称?   使用Java与WebSphere的SSL握手错误   eclipse线程“main”Java中的第一个Java程序异常。lang.NoClassDefFoundError   java将Javafx应用作为Web应用移植的最佳方式   IDE的java右JVM文件夹   java如何在基本适配器中停止文本到语音   java If block使用substring和equals方法以假值执行   在本例中,如何在java中返回多个值?   java第二个主类在maven构建期间覆盖第一个主类   如何在java中设置运行时ArrayList的泛型类型?   java从主机读取文件