【问题标题】:Searching for strings in txt file在 txt 文件中搜索字符串
【发布时间】:2021-10-20 13:59:36
【问题描述】:

我有多个 .txt 文件,我正在寻找任何这样的字符串:lst = ['PASSED', 'FAILED', 'PASSED WITH WARNINGS'] 我创建了代码,但它在空格上分裂,我得到的只是 PASSED 而不是 PASSED WITH WARNINGS。如何更正我的代码?

for i in range(len(tab)):
    with open(tab[i], 'r') as infile:
        lines = infile.readlines()
        var = [line for line in lines if (set(line.split()) & set(msgs))]
        print(var)

我的 .txt 文件示例:

Some info here
Another info
Some more info
And so on...
2021_09_09_09_09_31     PASSED WITH WARNINGS
2021_09_09_09_09_34     PASSED WITH WARNINGS

【问题讨论】:

  • 你能用一个简短的例子来更新你的问题吗?你正在解析的 .txt 文件之一,以及该文件的预期输出?

标签: python string split txt


【解决方案1】:
lst = ['PASSED', 'FAILED', 'PASSED WITH WARNINGS']
for i in range(len(tab)):
    with open(tab[i], 'r') as infile:
        lines = infile.readlines()
        var = [line.split(" ", 1)[-1].strip() for line in lines if any([word in line for word in lst])]
        print(var)

【讨论】:

  • 以及如何在没有时间戳的情况下只留下 PASSED WITH WARNINGS 的消息?
  • 一个 hacky 方式是:var = [line.split(" ", 1)[-1] for line in lines if any([word in line for word in lst])]
  • 但它会在 PASSED WITH WARNINGS 前面留下空白。有什么办法可以删除这个空格?
  • 是的,在它后面贴一条:var = [line.split(" ", 1)[-1].strip() ...
  • 非常感谢! :)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2021-11-14
  • 1970-01-01
  • 2018-11-27
  • 2014-02-06
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多