【发布时间】:2017-05-26 16:06:37
【问题描述】:
Spyder 2.x 上的 Python 3.5.2
我有数千个文本文件,它们采用以下半结构化格式。
下面是一个文件one.txt:
Goodsign: Klisti upto 15:57 Bad Omen: Gated zone
Dusk Attack: Uptime Dusk Rest: Winters
下面是第二个文件 second.txt
Goodsign: Kukul upto 12:60 Bad Omen: Open zone
Dusk Attack: Downtime Dusk Rest: Summers Daring Tribe: Mojars of Moana
现在我想解析这两个文件并获取标签 Goodsign 的值:在 one.txt 中为“Klisti upto 15:57”,在第二种情况下为“Kukul upto 12:60”。
对于下一组变量,再次使用相同的 Bad Omen:获取值“Gated zone”和第二个情况 Bad Omen:“Open zone”。
对于下一组变量,再次忽略   并获取标签“Dusk Attack:”的值,对标签“Dusk Rest:”重复相同的操作
问题除了:分隔符之外,值之间似乎有一个制表符分隔符,例如 Downtime Dusk Rest: there is a gap "" is this tab or how to parse this kind of text?
我尝试实现下面的代码,但如何仅用于分隔符“Dusk Rest:”,但它给出了之后的所有值。我只需要重视“停机时间”,而它给了我“停机时间黄昏休息:萨默斯大胆部落:莫阿纳的莫哈尔”:
f = open('one.txt', 'r')
lines = f.readlines()
f.close()
searchtxt="Dusk Rest:"
for i, line in enumerate(lines):
if searchtxt in line and i+1 < len(lines):
#print(lines[i+1])
print(line)
break
非常感谢您的宝贵回答!
【问题讨论】:
-
每个文件是否有多个这样的块?
-
是的,每个文件单个块在同一个文件中不重复“黄昏休息:”只出现一次。
标签: python python-3.x parsing text-files delimiter