[英]print the string in between 2 conditions of text file in Python
我是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
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-XXXXXXXXX” XXXXXXXXX =編碼的快照轉儲類型。 接下來將顯示幾行數據。 行數是可變的並且可以改變。 最后一行是“ GOOD BYE TAKE CARE”
我的輸出應該是
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
with open('text.txt') as file:
for line in file.readlines():
if line[9:13] == 'SNAP':
printing = True
if printing:
print (line.strip())
if line == '08:12:19 GOOD BYE TAKE CARE':
break
最初,布爾變量printing
設置為False
以便禁用打印。 循環讀取行。 在特殊位置用“ SNAP”讀取一行時, printing is set to
True以啟用打印。 在這種情況下,將在讀取行后立即對其進行打印。 當讀取一行containind'GOOD BYE [etc]'時,循環中斷,腳本結束。
編輯:如果您想在“ GOOD BYE [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())
通知特別是line
必須剝去的結束行字符到測試是否相等。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.