【发布时间】:2022-01-22 12:59:33
【问题描述】:
输入:
ID aa
AA Homo sapiens
DR ac
BB ad
FT ae
//
ID ba
AA mouse
DR bc
BB bd
FT be
//
ID ca
AA Homo sapiens
DR cc
BB cd
FT ce
//
预期输出:
DR ac
FT ae
//
DR cc
FT ce
//
代码:
word = 'Homo sapiens'
with open(input_file, 'r') as txtin, open(output_file, 'w') as txtout:
for block in txtin.read().split('//\n'): # reading a file in blocks
if word in block: # extracted block containing the word, 'Homo sapiens'
extracted_block = block + '//\n'
for line in extracted_block.strip().split('\n'): # divide each block into lines
if line.startswith('DR '):
dr = line
elif line.startswith('FT '):
ft = line
我根据“//”(块)读取输入文件。而且,如果块中包含“智人”一词,我提取了块。此外,在该块中,以“DR”开头的行定义为 dr,以“FT”开头的行定义为 ft。我应该如何使用 dr 和 ft 编写“输出”以获得“预期输出”?
【问题讨论】:
标签: python parsing line block word