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

il2fb-game-log-parser的Python项目详细描述


pypi_packageSupported versions of Pythonlicense

unix_buildBuild status of the master branch on WindowsTest coverage

Codacy Code ReviewScrutinizer Code QualityCode HealthRequirements Status

目录

概要

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

演示

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

你只需要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-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

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

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

推荐PyPI第三方库


热门话题
使用jaxrpc的Java eclipse WebService客户端   java编程方式在对象上写入名称   java Spring批处理:重试后跳过   java Android错误:错误:任务执行失败:应用程序:transformClassesWithDexForDebug'   带有清单文件nullPointerException的java Android元数据   spring Java Quartz调度作业停止运行   JavaMockito:如何在不调用实际方法的情况下,模拟带有参数和无效返回类型的静态方法?   java Tomcat连接池问题无法在关闭的连接上调用方法   java如何交换列表中的项目?   java如何停止线程并通过Toast在线程中正确显示文本?   java为什么连续写入OutputStream时偏移量0不会导致重复字节?   java我无法生成头文件   不兼容的返回类型错误java   修改值后键值对的java Jolt转换规范   java有自动更新Javadoc的工具吗?   java线程如何在ints自身实例类中共享变量   java继承一个非gwt模块   java Hibernate xml配置   使用netty4异步调用的java链接HTTP请求响应