<p>我们需要更多关于文件格式的信息,比如如何用数字标识行,这些行上有多少个数字等等,但实际上你打开文件并逐行处理它。在</p>
<pre><code>with open('data.txt') as inf, open('out.txt', 'w') as outf:
for line in inf:
if # line with numbers
# then code similar to what's shown below
# generating a new value for variable line
line = .... # see below
outf.write(line+'\n') # write out "line" to output file, either the
# original non-number line, or the "modified"
# line with the parsed/math results.
</code></pre>
<p>有关如何从文件中收集数据的详细信息需要有关数据/文件格式的更多信息,但通常对于包含数字的行,可以使用<a href="http://docs.python.org/library/stdtypes.html?highlight=split#str.split" rel="nofollow">split()</a>对其进行解析,然后使用<a href="http://docs.python.org/tutorial/datastructures.html#list-comprehensions" rel="nofollow">list comprehension</a>将各部分转换为浮点值,如下所示:</p>
^{pr2}$
<p>现在,<code>n</code>是<code>float</code>值的列表。在</p>
<pre><code>n
[5.5, 6.09, 8.0, 12.2]
</code></pre>
<p>你可以用它来计算和打印(尽管这里的结果是作为一个字符串分配给变量的):</p>
<pre><code>line = "%.2f %.2f" %((n[0]+n[1]), (n[2]+n[3]))
11.59 20.20
</code></pre>
<p>旁白:使用<code>with</code>打开文件的好处是,当您完成操作或遇到异常时,它们会被关闭。在</p>