我有一个包含如下条目的文本文件:
JohnDoe
Assignment 9
Reading: NO
header: NO
HW: NO
Solutions: 0
show: NO
Journals: NO
free: NO
Finished: NO
Quiz: 0
Done
Assignment 3
E-book: NO
HW: NO
Readings: NO
Show: 0
Journal: NO
Study: NO
Test: NO
Finished: NO
Quiz: 0
Done
这是一个小样本。该文件中有几个学生。每个学生在他们的名字下都有两个作业,只有当每个作业中以“已完成”开头的行显示“已完成:是”时,他们才会通过。每个作业下的所有数据都是杂乱无章的,但在每个作业下的某处会显示“已完成:是(或否)”我需要一种方法来读取文件并说明是否有学生通过。到目前为止,我有
def get_entries( file ):
with open( "dicrete.txt.rtf", 'rt') as file:
for line in file:
if "Finished" in line:
finished, answer = line.split(':')
yield finished, answer
# dict takes a sequence of `(key, value)` pairs and turns in into a dict
print dict(get_entries( file ))
我只能让这段代码返回一个条目(第一个“完成”它读取为键,“是或否”作为值,这是我想要的,但我希望它返回文件中开始的每一行与“完成”。所以我提供的示例数据我想返回一个包含 2 个条目的字典 {Finished:"NO" , Finished:"NO"}