擅长:python、mysql、java
<p>您需要循环文件本身,并为找到第一行<em>而没有<code>@</code>字符时设置一个标志,之后就可以开始收集数字了。在一行中找到<code>&</code>字符时中断阅读。你知道吗</p>
<pre><code>def readll(infile):
with open(infile) as data:
floatlist1, floatlist2 = [], []
reading = False
for line in data:
if not reading:
if '@' not in line:
reading = True
else:
continue
if '&' in line:
return floatlist1, floatlist2
numbers = map(float, line.split())
floatlist1.append(numbers[0])
floatlist2.append(numbers[1])
</code></pre>
<p>因此,上述:</p>
<ul>
<li>将“reading”设置为<code>False</code>,并且仅当找到没有<code>'@'</code>的行时,才将该行设置为<code>True</code>。你知道吗</li>
<li>当“reading”为<code>True</code>时:
<ul>
<li>如果行包含<code>&</code>,则返回读取的数据</li>
<li>否则,假定该行包含两个由空格分隔的浮点值,这些浮点值被添加到各自的列表中</li>
</ul></li>
</ul>
<p>通过返回,函数结束,文件自动关闭。只读取第一个块,忽略文件的其余部分。你知道吗</p>