你的问题并没有这么说,但是我可以假设你想“查找”在标题为C:的行中表示自由空间的值吗?在
除非您需要文件中的数据来执行其他操作,否则只需逐行读入文件,直到得到结果为止。第一行将是标题行,您可以使用“caption_header”和“fs_header”的位置来解析每个后续的数据行。在
在您的示例中,这意味着我们要测试每行的第一个值是否包含C:,如果是,我们要查找的答案将在第二列中。如果我们找到答案,那么就不需要搜索其余行。在def find_value(caption_header, fs_header, caption_value, fp):
fs = None
with open(fp) as fid:
headers = fid.readline().strip().split()
for i, h in enumerate(headers):
if h == caption_header:
caption_position = i
if h == fs_header:
fs_position = i
line = fid.readline()
while line != '':
values = line.strip().split()
if values[caption_position] == caption_value:
fs = values[fs_position]
break
return fs
然后像这样使用它:
^{pr2}$