在Python中打印文本文件的两个条件之间的字符串
我是python新手。我正在努力打印文本文件条件之间的字符串。我的文本文件包含以下信息在Python中打印文本文件的两个条件之间的字符串,python,if-statement,text,Python,If Statement,Text,我是python新手。我正在努力打印文本文件条件之间的字符串。我的文本文件包含以下信息 03:37:59 CONFIRM 03.37.59 IS-0008 SS-XYZ SSU-BSS AB-008966 CTL-I001234 03:37:59 123HTSA TVP5 08:12:19 SNAP 290D 08.12.20 CX-A TU-BSS ZRE-BSS IS-3
03:37:59 CONFIRM 03.37.59 IS-0008 SS-XYZ SSU-BSS AB-008966 CTL-I001234
03:37:59 123HTSA TVP5
08:12:19 SNAP 290D 08.12.20 CX-A TU-BSS ZRE-BSS IS-3
08:12:19 PSW-07151000 813264 00000000 2967561E
08:12:19 PGM-BA13 CODE-U00BA1302 TERM-000000A
/*After this a few lines of data display*/
08:12:19 GOOD BYE TAKE CARE
第三行有“SNAP”和“IS-”
第5行有“PGM-XXXX”,其中XXXX=程序名,“CODE-xxxxxxxx”xxxxxxxx=编码的快照类型。
随后将显示几行数据。行数是可变的,可以更改。
最后一行是“再见,保重”
我的输出应该是
08:12:19 SNAP 290D 08.12.20 CX-A TU-BSS ZRE-BSS IS-3
08:12:19 PSW-07151000 813264 00000000 2967561E
08:12:19 PGM-BA13 CODE-U00BA1302 TERM-000000A
/*After this a few lines of data display*/
08:12:19 GOOD BYE TAKE CARE
我已经试过了,但我想打印到08:12:19再见,保重
with open("TEXT.txt", "r") as file:
output = ""
for line in file.readlines():
if "CTL" in line:
output += line
print(output)
如果我理解正确,您只需要打印包含SNAP和IS-,的行,那么这个怎么样
import re
with open("TEXT.txt", "r") as file:
output = ""
ok = False
for line in file:
if re.search('SNAP.*IS-', line):
ok = True
if ok:
output += line
print(output)
最初,布尔变量printing
设置为False
,以便禁用打印。行以循环方式读取。当在特殊位置使用“SNAP”读取行时,printing设置为
True`以启用打印。在这种情况下,行在读取后立即打印。当读取行时,包含“OOD BYE[etc]”循环中断,脚本结束
编辑:如果您想在“再见[etc]”之前结束打印,那么脚本可以如下所示
printing = False
with open('text.txt') as file:
for line in file.readlines():
if line[9:13] == 'SNAP':
printing = True
if line.strip() == '08:12:19 GOOD BYE TAKE CARE':
break
if printing:
print (line.strip())
请特别注意,
行
必须去掉行尾字符,以测试是否相等。您如何挣扎?您已经有代码了吗?您正在解释您所拥有的内容,但没有明确的说明您想要什么以及它与您所拥有的内容的关系。明确这一点是自动化的第一部分。使用open(“TEXT.txt”,“r”)作为file:output=“”表示文件中的行。readlines():如果第行中的“CTL”:output+=行打印(output)@Venkatesan,好的,显示预期结果的确切外观。代码中的缩进在这个问题中的具体显示方式是什么?您的代码正在打印到再见时小心(在这一行之前)。如果我想打印“再见,小心”这一行意味着我应该怎么做?你能帮我一下吗?我已经根据我认为你可能的意思编辑了我的答案。
printing = False
with open('text.txt') as file:
for line in file.readlines():
if line[9:13] == 'SNAP':
printing = True
if line.strip() == '08:12:19 GOOD BYE TAKE CARE':
break
if printing:
print (line.strip())