我有一个文本文件,其中的文本如下所示:
(49) Sat Jun/30 21:00 Uruguay 2-1 (1-0) Portugal @ Fisht Stadium, Sochi (UTC+3)
[Edinson Cavani 7', 62'; Pepe 55']
我必须实现一个生成器函数,它根据这些规则从每行文本中提取数据
来自输入文件的-read一个游戏的2行文本
-use 2个正则表达式(每行一个),用于提取一个游戏对象的数据(颜色编码的here
-pass回传数据(注意,提取的数据是回传的,而不是回传游戏对象)
我可以提取1个数据值,但在使用一个正则表达式从一行文本中提取5个数据值(Game Number,Country1/2,Score1/2)时遇到了问题。
发布于 2018-08-08 10:52:00
试试这个:
import re
with open('FileName.txt','r') as f:
print([{'Game Number':line.split()[0],'Country 1':line.split()[4],'Country 2':line.split()[7],'Score 1':line.split()[5], 'Score 2':line.split()[6]} if not line[0]=='[' else {'Player Name':[re.sub('[^a-zA-Z\s+]','',i).strip() for i in line.split(';')], 'Minute':[[int(re.sub('\D','',x)) for x in i.split() if any(a for a in x if a.isdigit())] for i in line.split(';')]} for line in f])
https://stackoverflow.com/questions/51737752
复制相似问题