擅长:python、mysql、java
<p>你所说的“文件内容总和”到底是什么意思?你把所有的数字都加在一个叫做“lab3.txt”的文件里了吗</p>
<p>要将文件的内容存储在变量中,可以使用<code>myfile.readlines()</code>(不是<code>myfile.readlines</code>括号是必要的。如果不使用方括号,则该语句不会读取任何内容。)或者使用<code>for</code>块一次遍历一行文件的内容<strong>但并非两者都是</strong>,正如暗影游侠的评论所解释的那样</p>
<p>假设'lab3.txt'包含以下行</p>
<pre><code>84
236
956
31
163
538
4
861
</code></pre>
<p>要找到它们的总和,你可以这样做</p>
<pre><code>ctn = 0
myfile = open('lab3.txt')
for item in myfile:
ctn += int(item) # convert string to integer
print(ctn)
</code></pre>
<p>这里,<code>item</code>将按顺序获取文件中每一行的(字符串)值。它被转换成一个整数并加到<code>ctn</code></p>
<p><code>readlines</code>返回一个列表(列表中的每个元素都是一个字符串,字符串是文件中的行。)如果必须使用<code>readlines</code>,则必须将列表中的元素转换为整数</p>
<pre><code>myfile = open('lab3.txt')
lines = myfile.readlines()
lines_int = [int(item) for item in lines]
ctn = sum(lines_int)
print(ctn)
</code></pre>
<p>别忘了关闭文件</p>
<pre><code>myfile.close()
</code></pre>
<p>如果使用文件上下文,就不必为这个<code>close</code>费心了。观察如何将代码减少到两行</p>
<pre><code>with open('lab3.txt') as myfile:
ctn = sum([int(item) for item in myfile.readlines()])
</code></pre>