python - 在 python/bash 中打印带有条件的特定行范围
问题描述
这是示例代码
DEBUG: extra
DEBUG:Fri Dec 7 06:48:47 2018:16920:QOP: final output is test testtset
output output
output
DEBUG: extra extra
DEBUG: extra
我的代码充满了这样的块,我想从“最终输出是”获取所有输出到所有块的最后一个输出语句。
预期输出:
test testtset
output output
output
我的代码:
stream=open("debuglog.txt","r")
lines=stream.readlines()
for i in lines:
if ("final output is" in i):
print lines[lines.index(i)]
目前我的代码只打印具有文本“最终输出是”的行,但我希望它打印完整输出直到下一个“调试:”
解决方案
尝试这个:
stream=open("debuglog.txt","r")
lines=stream.readlines()
keep_line = False
for i in lines:
if "DEBUG:" in i:
keep_line = False
if "final output is" in i:
keep_line = True
if keep_line:
print(i)
它基本上在“最终输出是”之后遍历每一行,直到找到另一个“DEBUG:”。
希望这可以帮助。
推荐阅读
- postgresql - 如何更新 PostgreSQL 时区数据库
- python - 如何在 Python 脚本中集成 HTML 代码?
- kubernetes - Service: v1.Service.Spec: v1.ServiceSpec.Selector: ReadString: expects " or n, but found t
- android - 尝试运行时在我的第一个颤振应用程序中出错
- c# - Byte Array to String Conversion Formatting Issues
- python - 如何修复关于 TensorFlow 预测的 TypeError?
- javascript - 如何在异步验证器中使用 debounceTime() 和 distinctUntilChanged()
- css - 如何将我的边框顶部移动到页面的最顶部?
- php - 在 Wordpress 管理员中添加页面(菜单项)
- bash - Having Trouble comparing output (Which is the result of running a C program)with expected