python可以执行字符串操作而不复制字符串存储器吗

我正在编写一个程序来帮助我解析一个长的日志。我们正在谈论成千上万的线路。当然,目标是快速获取摘要数据,这意味着对内存问题应保持认真。

日志中包含多个部分/步骤。现在,将日志读取为字符串,然后仔细检查并列出测试的开始索引和结束索引。

我的目标是快速找出以下几点

  • 文件中有几行
  • 是否包含字符串“ Assert.java”
  • 是否包含字符串“ [SEVERE]”

我目前正在这样做

    numLines = logFileString[rec["startMarker"]:rec["endMarker"]].count("\n")
    foundAssert = "Assert.java" in logFileString[rec["startMarker"]:rec["endMarker"]]
    foundFailure = "[SEVERE ]" in logFileString[rec["startMarker"]:rec["endMarker"]]

我的想法是,如果我将logFileString[rec["startMarker"]:rec["endMarker"]]一个变量重新使用,那肯定会迫使Python将字符串的那一部分(可能是数千行)复制到一个变量中。也许不这样做意味着python可以通过仅流传输文件或其他东西来进行优化。

我不想使代码复杂得多,但我也想减少该代码运行所需的延迟。我知道我可以测量确定更快速度的时间,但是我想更多地了解python3在这些操作过程中如何处理字符串数据,我不知道从哪里开始。

我的问题本质上是:我现在正在执行什么操作,迫使python复制大部分字符串吗?有没有一种更有效的方式来获取这三个指标?

我不知道Python在这里可以采用什么优化。

w

跟进我的评论。

我首先要运行一个程序,然后再担心速度和效率。

Python将每秒从一个文本文件读取数百万行。您的文件读取速度应该不是问题。磁带已经退役了!

您还将描述面向行的过程。即,您不需要将整个文件读入内存。

如果是这样,请尝试以下方法:

found=[]

with open(ur_file) as f:
    for i,line in enumerate(f):
        if any(test in line for test in ("Assert.java", "[SEVERE ]")):
            found.append((i, line.rstrip())) 

print(f'Total Lines: {i:,}')
print('lines with tests found: {}'.format('\n'.join(map(str, found))))

(未测试...)

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

将char *分配给字符串而不复制

来自分类Dev

ule子执行字符串操作

来自分类Dev

Java字符串参数存储器

来自分类Dev

您可以通过字符串的存储位置而不是内容来比较字符串吗?

来自分类Dev

使用Azure存储资源管理器在Azure表上执行字符串操作的语法

来自分类Dev

使用最少的内部存储器资源高效地将字符串与磁盘定序的算法

来自分类Dev

使用lldb查找字符串存储器

来自分类Dev

Python发布输出。字符串操作

来自分类Dev

复制字符串函数

来自分类Dev

在执行PATCH请求时,可以在http标头中传递json字符串以向服务器提供选项吗?

来自分类Dev

Python expandtabs字符串操作

来自分类Dev

我可以在Node中执行字符串命令吗?

来自分类Dev

Python,如果字符串包含“ foo”,则执行此操作

来自分类Dev

如何在不复制对象的情况下将字符串转换为char []?

来自分类Dev

如何在不复制的情况下将字符串值从数组移动到元组?

来自分类Dev

在C ++中执行字符串复制操作时出错

来自分类Dev

我可以在python函数中搜索字符串吗?

来自分类Dev

Java字符串参数存储器

来自分类Dev

您可以通过字符串的存储位置而不是内容来比较字符串吗?

来自分类Dev

'\'可以在Python字符串中吗?

来自分类Dev

可以从浏览器调用带有非字符串参数的WCF JSON WebService操作吗?

来自分类Dev

字符串::复制错误

来自分类Dev

字符串和字符串缓冲存储器的概念

来自分类Dev

字符串操作

来自分类Dev

Python:字符串操作

来自分类Dev

是否可以在不复制参数字符串的情况下读取symlink值?

来自分类Dev

为什么char *不复制到向量中,但是复制了字符串?

来自分类Dev

我可以将重复的字符串存储在字符串数组中吗?

来自分类Dev

Perl:创建一个字符串而不复制

Related 相关文章

  1. 1

    将char *分配给字符串而不复制

  2. 2

    ule子执行字符串操作

  3. 3

    Java字符串参数存储器

  4. 4

    您可以通过字符串的存储位置而不是内容来比较字符串吗?

  5. 5

    使用Azure存储资源管理器在Azure表上执行字符串操作的语法

  6. 6

    使用最少的内部存储器资源高效地将字符串与磁盘定序的算法

  7. 7

    使用lldb查找字符串存储器

  8. 8

    Python发布输出。字符串操作

  9. 9

    复制字符串函数

  10. 10

    在执行PATCH请求时,可以在http标头中传递json字符串以向服务器提供选项吗?

  11. 11

    Python expandtabs字符串操作

  12. 12

    我可以在Node中执行字符串命令吗?

  13. 13

    Python,如果字符串包含“ foo”,则执行此操作

  14. 14

    如何在不复制对象的情况下将字符串转换为char []?

  15. 15

    如何在不复制的情况下将字符串值从数组移动到元组?

  16. 16

    在C ++中执行字符串复制操作时出错

  17. 17

    我可以在python函数中搜索字符串吗?

  18. 18

    Java字符串参数存储器

  19. 19

    您可以通过字符串的存储位置而不是内容来比较字符串吗?

  20. 20

    '\'可以在Python字符串中吗?

  21. 21

    可以从浏览器调用带有非字符串参数的WCF JSON WebService操作吗?

  22. 22

    字符串::复制错误

  23. 23

    字符串和字符串缓冲存储器的概念

  24. 24

    字符串操作

  25. 25

    Python:字符串操作

  26. 26

    是否可以在不复制参数字符串的情况下读取symlink值?

  27. 27

    为什么char *不复制到向量中,但是复制了字符串?

  28. 28

    我可以将重复的字符串存储在字符串数组中吗?

  29. 29

    Perl:创建一个字符串而不复制

热门标签

归档