使用Python分割数据块时出错

2024-03-19

我有一个解析过的文件,我需要根据LogType.以下是我的数据:

===================================================================================
LogType:container-localizer-syslog
Log Upload Time :Thu Jun 25 12:24:45 +0100 2020
LogLength:0
Log Contents:

LogType:stderr
Log Upload Time :Thu Jun 25 12:24:52 +0100 2020
LogLength:3000
Log Contents:
20/06/25 12:19:33 INFO datasources.FileScanRDD
20/06/25 12:19:40 INFO executor.EXECUTOR: Finished task 18.0 in stage 0.0 (TID 18),18994 bytes result sent to driver.
20/06/21 12:19:40 INFO eas
20/06/25 12:20:41 WARN Warning as the node is accessed without started

===================================================================================
LogType:container-localizer-syslog
Log Upload Time :Thu Jun 25 12:24:45 +0100 2020
LogLength:0

我应用了一个代码,该代码会导致数据分割时出现一些错误。下面是我应用的代码:

def parse_container(text,full_text_lines,filter_log_types=None,filter_content_types=None):
    results={}

    first, rest  = text.split('\n', 1)
   #print(rest)      #rest is the block of data mentioned above
    results['id'] = first
    all_log_types = re.compile('^(?=LogType:)',flags=re.MULTILINE).split(rest)
    print(all_log_types)

我得到的输出:

['========================================================================\nLogType:container-
localizer-syslog\nLog Upload Time :Thu Jun 25 12:24:45 +0100 2020\nLogLength:0\nLog Contents:\n\n
LogType:stderr\nLog Upload Time :Thu Jun 25 12:24:52 +0100 2020\nLogLength:3000\nLog Contents:\n20/06/25 12:19:33 INFO datasources.FileScanRDD \n20/06/25 12:19:40 INFO executor.EXECUTOR: Finished task 18.0 in stage 0.0 (TID 18),18994 bytes result sent to driver.\n
20/06/21 12:19:40 INFO eas\n20/06/25 12:20:41 WARN Warning as the node is accessed without started\n \n']
['========================================================================\nLogType:container-
localizer-syslog\nLog Upload Time :Thu Jun 25 12:24:45 +0100 2020\nLogLength:0\nLog Contents:\n\n']

我需要的输出:

['========================================================================\n','LogType:contain
er-localizer-syslog\nLog Upload Time :Thu Jun 25 12:24:45 +0100 2020\nLogLength:0\nLog Contents:\n\n', 
 'LogType:stderr\nLog Upload Time :Thu Jun 25 12:24:52 +0100 2020\nLogLength:3000\nLog Contents:\n20/06/25 12:19:33 INFO datasources.FileScanRDD \n20/06/25 12:19:40 INFO executor.EXECUTOR: Finished task 18.0 in stage 0.0 (TID 18),18994 bytes result sent to driver.\n20/06/21 12:19:40 INFO eas\n20/06/25 12:20:41 WARN Warning as the node is accessed without started\n \n']

['========================================================================\n','LogType:contain
    er-localizer-syslog\nLog Upload Time :Thu Jun 25 12:24:45 +0100 2020\nLogLength:0\nLog Contents:\n\n']

在我的输出中你可以看到我得到\n在 LogType 的开头,但我需要根据 LogType 进行分割comma.

在预期的输出中,您可以看到数据已根据 LogType 进行分割,

我正在使用 Python 2.6.6 。请帮我解决这个问题。多谢!


我们可以使用正则表达式轻松分割日志python。以下代码将日志按or的两个条件。

条件1:多次出现=随后是一个\n

条件2:出现 2 次\n

如果满足任何条件,我们就会得到输出。filter将删除返回的任何空字符串split并返回一个object. This object然后转换为list.

import re

text = """===================================================================================
LogType:container-localizer-syslog
Log Upload Time :Thu Jun 25 12:24:45 +0100 2020
LogLength:0
Log Contents:

LogType:stderr
Log Upload Time :Thu Jun 25 12:24:52 +0100 2020
LogLength:3000
Log Contents:
20/06/25 12:19:33 INFO datasources.FileScanRDD
20/06/25 12:19:40 INFO executor.EXECUTOR: Finished task 18.0 in stage 0.0 (TID 18),18994 bytes result sent to driver.
20/06/21 12:19:40 INFO eas
20/06/25 12:20:41 WARN Warning as the node is accessed without started

===================================================================================
LogType:container-localizer-syslog
Log Upload Time :Thu Jun 25 12:24:45 +0100 2020
LogLength:0
"""


output = list(filter(None, re.compile('[=]+.\n|\n\n').split(text)))

print(output)

OUTPUT:

['LogType:container-localizer-syslog\nLog Upload Time :Thu Jun 25 12:24:45 +0100 2020\nLogLength:0\nLog Contents:', 'LogType:stderr\nLog Upload Time :Thu Jun 25 12:24:52 +0100 2020\nLogLength:3000\nLog Contents:\n20/06/25 12:19:33 INFO datasources.FileScanRDD\n20/06/25 12:19:40 INFO executor.EXECUTOR: Finished task 18.0 in stage 0.0 (TID 18),18994 bytes result sent to driver.\n20/06/21 12:19:40 INFO eas\n20/06/25 12:20:41 WARN Warning as the node is accessed without started', 'LogType:container-localizer-syslog\nLog Upload Time :Thu Jun 25 12:24:45 +0100 2020\nLogLength:0\n']
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

使用Python分割数据块时出错 的相关文章

  • (discord.py) 尝试更改成员角色时,“用户”对象没有属性“角色”

    因此 我正在尝试编写一个机器人 让某人在命令中指定的主持人指定的一段时间内暂停角色 我知道该变量称为 小时 即使它目前以秒为单位 我稍后会解决这个问题 基本上 它是由主持人在消息 暂停 personmention numberofhours
  • 使用Python开发Web应用程序

    我一直在用 python 做一些工作 但这都是针对独立应用程序的 我很想知道 python 的任何分支是否支持 Web 开发 有人还会建议一个好的教程或网站吗 我可以从中学习一些使用 python 进行 Web 开发的基础知识 既然大家都说
  • 下载 PyQt6 的 Qt Designer 并使用 pyuic6 将 .ui 文件转换为 .py 文件

    如何下载 PyQt6 的 QtDesigner 如果没有适用于 PyQt6 的 QtDesigner 我也可以使用 PyQt5 的 QtDesigner 但是如何将此 ui 文件转换为使用 PyQt6 库而不是 PyQt5 的 py 文件
  • Django REST序列化器:创建对象而不保存

    我已经开始使用 Django REST 框架 我想做的是使用一些 JSON 发布请求 从中创建一个 Django 模型对象 然后使用该对象而不保存它 我的 Django 模型称为 SearchRequest 我所拥有的是 api view
  • 使用 openCV 对图像中的子图像进行通用检测

    免责声明 我是计算机视觉菜鸟 我看过很多关于如何在较大图像中查找特定子图像的堆栈溢出帖子 我的用例有点不同 因为我不希望它是具体的 而且我不确定如何做到这一点 如果可能的话 但我感觉应该如此 我有大量图像数据集 有时 其中一些图像是数据集的
  • 如何收集列表、字典等中重复计算的结果(或制作修改每个元素的列表的副本)?

    There are a great many existing Q A on Stack Overflow on this general theme but they are all either poor quality typical
  • 如何在android上的python kivy中关闭应用程序后使服务继续工作

    我希望我的服务在关闭应用程序后继续工作 但我做不到 我听说我应该使用startForeground 但如何在Python中做到这一点呢 应用程序代码 from kivy app import App from kivy uix floatl
  • pandas 替换多个值

    以下是示例数据框 gt gt gt df pd DataFrame a 1 1 1 2 2 b 11 22 33 44 55 gt gt gt df a b 0 1 11 1 1 22 2 1 33 3 2 44 4 3 55 现在我想根据
  • 在pyyaml中表示具有相同基类的不同类的实例

    我有一些单元测试集 希望将每个测试运行的结果存储为 YAML 文件以供进一步分析 YAML 格式的转储数据在几个方面满足我的需求 但测试属于不同的套装 结果有不同的父类 这是我所拥有的示例 gt gt gt rz shorthand for
  • 当玩家触摸屏幕一侧时,如何让 pygame 发出警告?

    我使用 pygame 创建了一个游戏 当玩家触摸屏幕一侧时 我想让 pygame 给出类似 你不能触摸屏幕两侧 的错误 我尝试在互联网上搜索 但没有找到任何好的结果 我想过在屏幕外添加一个方块 当玩家触摸该方块时 它会发出警告 但这花了很长
  • Python - 按月对日期进行分组

    这是一个简单的问题 起初我认为很简单而忽略了它 一个小时过去了 我不太确定 所以 我有一个Python列表datetime对象 我想用图表来表示它们 x 值是年份和月份 y 值是此列表中本月发生的日期对象的数量 也许一个例子可以更好地证明这
  • Numpy 优化

    我有一个根据条件分配值的函数 我的数据集大小通常在 30 50k 范围内 我不确定这是否是使用 numpy 的正确方法 但是当数字超过 5k 时 它会变得非常慢 有没有更好的方法让它更快 import numpy as np N 5000
  • Python 3 中“map”类型的对象没有 len()

    我在使用 Python 3 时遇到问题 我得到了 Python 2 7 代码 目前我正在尝试更新它 我收到错误 类型错误 map 类型的对象没有 len 在这部分 str len seed candidates 在我像这样初始化它之前 se
  • 如何将 PIL 图像转换为 NumPy 数组?

    如何转换 PILImage来回转换为 NumPy 数组 这样我就可以比 PIL 进行更快的像素级转换PixelAccess允许 我可以通过以下方式将其转换为 NumPy 数组 pic Image open foo jpg pix numpy
  • 设置 torch.gather(...) 调用的结果

    我有一个形状为 n x m 的 2D pytorch 张量 我想使用索引列表来索引第二个维度 可以使用 torch gather 完成 然后然后还设置新值到索引的结果 Example data torch tensor 0 1 2 3 4
  • glpk.LPX 向后兼容性?

    较新版本的glpk没有LPXapi 旧包需要它 我如何使用旧包 例如COBRA http opencobra sourceforge net openCOBRA Welcome html 与较新版本的glpk 注意COBRA适用于 MATL
  • 用于运行可执行文件的python多线程进程

    我正在尝试将一个在 Windows 上运行可执行文件并管理文本输出文件的 python 脚本升级到使用多线程进程的版本 以便我可以利用多个核心 我有四个独立版本的可执行文件 每个线程都知道要访问它们 这部分工作正常 我遇到问题的地方是当它们
  • 在python中,如何仅搜索所选子字符串之前的一个单词

    给定文本文件中的长行列表 我只想返回紧邻其前面的子字符串 例如单词狗 描述狗的单词 例如 假设有这些行包含狗 hotdog big dog is dogged dog spy with my dog brown dogs 在这种情况下 期望
  • 如何使用google colab在jupyter笔记本中显示GIF?

    我正在使用 google colab 想嵌入一个 gif 有谁知道如何做到这一点 我正在使用下面的代码 它并没有在笔记本中为 gif 制作动画 我希望笔记本是交互式的 这样人们就可以看到代码的动画效果 而无需运行它 我发现很多方法在 Goo
  • 改变字典的哈希函数

    按照此question https stackoverflow com questions 37100390 towards understanding dictionaries 我们知道两个不同的字典 dict 1 and dict 2例

随机推荐

  • UIMA Ruta 使用由某些文本分隔的功能创建注释

    我有一些带有注释的文本 如下所示 wewf werwfwef wewfwefwwew wefewefwff AnnotationA asdfawece aefae eafewfaefa aefafe ceaewfae adfcaecae a
  • Google Chrome 开发工具无法在 Elements Tag 中显示正文内容

    大家都有这样的情况吗 Chrome开发工具Elements标签下 body标签的内容无法显示 唯一的方法是关闭开发工具并重新打开 这是一个 Chrome 错误 在 Canary 中仍然发生 crbug com 829884 https bu
  • ggplot geom_bar 的比例[重复]

    这个问题在这里已经有答案了 使用 ggplot 最简单的方法是什么 与此处相同 我需要调用 prop table 还是有更简单的方法 可重现的示例 x lt c good good bad bad bad bad perfect perfe
  • 无法定位到动态链接库

    我在读取 C 中的文本文件时遇到问题 所以基本上我想使用此代码读取 cmd 上的文本文件 但是会弹出错误 include
  • 如何从内容页使用母版页中的方法

    我正在使用 C 编写 ASP NET 4 应用程序 我有一个母版页 其中有以下方法 public void DisplayMessage string input Label myMessageDisplayer Label FindCon
  • 更改 x 轴上的刻度

    我正在尝试找出 d3 js 定义轴时 如何在 x 轴上获得自定义标签 例如 我得到的默认标签是 20 30 40 50 60 70 80 然而 我想要这样的东西 20 26 32 38 44 50 56 我目前正在学习它并根据官方提供的示例
  • 用线性渐变制作CSS3三角形

    我需要创建一侧带有三角形的按钮 像这样http css tricks com triangle breadcrumbs 具有线性垂直渐变和边框 我想使用纯CSS3 如果我需要45度的 三角形 就可以了 我就这样写 button after
  • 使用循环在rmarkdown中生成一段文本

    我需要生成一份由多个部分组成的报告 所有部分看起来都很相似 只有一些数据差异 部分的数量也取决于数据 我最终想要拥有的是这样的 r section names c A B C section data c 13 14 16 some loo
  • 使用C#登录https站点

    我正在尝试编写一个小程序 用于登录 Verizon 网站 然后检查该月还剩多少分钟 我需要帮助了解如何使用 C 登录该网站 我知道我需要使用 webrequest 来发布登录信息 但我不知道如何去做 带有登录表单的网站是https logi
  • Django 使用整数参数(主键)从模板构建 URL

    我在模板中有这个链接 a href Item 1 a 以及 urls py 中的这个 url url r item P
  • textinputlayout 密码切换图标被阻止

    我不知道如何用文字解释 但让附图来说话吧 基本上 setError 图标挡住了密码切换图标 最初 我认为这是一个简单的布局问题 我尝试了颜色和背景等 但是 经过多次尝试和错误 我似乎找不到问题的解决方案 我将在这里发布我的 XML 供您参考
  • jquery:window.location.reload() 不允许工作 $.post()

    请看看这个脚本 change click function var val new title val if val alert return false else post change title php id id lang lang
  • 如何通过ajax将mysql结果作为json传递

    我不知道如何通过 ajax JSON 将 mysql 查询的结果传递到 html 页面 ajax2 php statement pdo gt prepare SELECT FROM posts WHERE subid IN key2 AND
  • 在 Yii2 中运行行为代码之前获取控制器操作

    我正在尝试在 a 中执行一些代码Yii2控制器 因为我需要模型中的一些代码才能在behaviors部分 以便我可以将模型作为参数传递并避免运行重复的查询 但是我还需要能够找出什么action正在被召唤 但我运气不太好 我尝试过使用befor
  • 如何强制 DIV 向下延伸到屏幕底部?

    这对于 CSS 来说可能是不可能的 但也许我错了 我有这样的文档结构 BODY DIV A DIV B DIV A 是position absolute具有固定宽度并在屏幕上居中 它没有高度设置 DIV B 是position absolu
  • 从http下载SSIS - 错误从服务器获得的SSL认证响应无效

    我创建了一个 SSIS 包 它使用 C 脚本从 HTTPS URL 下载 CSV 文件 从 Visual Studio 执行时一切正常 但是 当我创建 SQL 代理作业时 包失败 如果我直接从 SQL Server 执行 dtsx 文件 该
  • 从字符串创建 IPEndpoint 的最佳方法

    Since IPEndpoint包含一个ToString 输出的方法 10 10 10 10 1010 还应该有Parse and or TryParse 方法但是没有 我可以将字符串分开 并解析 IP 地址和端口 但有没有更优雅的方式呢
  • Scala - 从字符串中删除除链接之外的所有 html 标签

    我正在尝试使用 scala 中此线程上找到的正则表达式模式 去除除链接之外的所有 HTML 标签 https stackoverflow com questions 44078 strip all html tags except link
  • 如何在 Paypal 中设置定期付款和一次性付款的混合

    我正在使用 Paypal REST API 来收取我的订阅费用 我的交易包括一次性购买和定期付款的混合 一次性购买将向用户收取 X 金额 定期付款应创建定期配置文件 每年向用户收取 Y 金额 这是我所拥有的 首先我打电话SetExpress
  • 使用Python分割数据块时出错

    我有一个解析过的文件 我需要根据LogType 以下是我的数据 LogType container localizer syslog Log Upload Time Thu Jun 25 12 24 45 0100 2020 LogLeng