【发布时间】:2015-11-18 00:04:02
【问题描述】:
我的输入文件为:
1 sentences, 6 words, 1 OOVs
1 zeroprobs, logprob= -21.0085 ppl= 15911.4 ppl1= 178704
6 words, rank1= 0 rank5= 0 rank10= 0
7 words+sents, rank1wSent= 0 rank5wSent= 0 rank10wSent= 0 qloss= 0.925606 absloss= 0.856944
file input.txt : 1 sentences, 6 words, 1 OOVs
1 zeroprobs, logprob= -21.0085 ppl= 15911.4 ppl1= 178704
6 words, rank1= 0 rank5= 0 rank10= 0
7 words+sents, rank1wSent= 0 rank5wSent= 0 rank10wSent= 0 qloss= 0.925606 absloss= 0.856944
我想提取单词 ppl 和它后面的值,在这种情况下:ppl=15911.4
我正在使用此代码:
with open("input.txt") as openfile:
for line in openfile:
for part in line.split():
if "ppl=" in part:
print part
但是,这只是提取单词 ppl 而不是值。我还想打印文件名。
预期输出:
input.txt, ppl=15911.4
我该如何解决这个问题?
【问题讨论】:
-
那是因为你被一个空格分割。
ppl的值将是列表中的下一个元素。如果可以选择修改文件,请考虑删除等号后的空格。 -
问题是我有一个文件夹,里面装满了这种格式的文件,我无法修改输入文件:(
-
一种方法是将文件读入字符串,然后匹配正则表达式
/\b(?<=ppl= )\d+\.\d/。\b是一个分词,(?<=ppl= )是一个肯定的后视,它断言匹配紧跟在"ppl= "之前。
标签: python python-2.7 extract word