<p>只需使用for循环遍历file对象:</p>
<pre><code>for line in file:
#do stuff..
</code></pre>
<p>注意,这包括每个<code>line</code>字符串末尾的新行字符(<code>\n</code>)。可以通过以下任一方法移除:</p>
^{pr2}$
<p>或者:</p>
<pre><code>for line in (l[:-1] for l in file):
#do stuff...
</code></pre>
<hr/>
<p>您只能通过读取文件来检查文件是否有另一行(尽管您可以使用<code>file.tell</code>来检查是否在文件的末尾而不进行任何读取)。在</p>
<p>这可以通过调用<code>file.readline</code>并检查字符串是否为空或调用<code>next</code>的{a1}并捕获{<cd6>}异常来完成。在</p>
<p>为了准确回答您的问题,您可以检查文件是否有另一行:</p>
<pre><code>next_line = file.readline():
if next_line:
#has next line, do whatever...
</code></pre>
<p>或者,在不修改当前文件指针的情况下:</p>
<pre><code>def has_another_line(file):
cur_pos = file.tell()
does_it = bool(file.readline())
file.seek(cur_pos)
return does_it
</code></pre>
<p>它将文件指针重置回其原始状态。在</p>
<p>例如</p>
<pre><code>$ printf "hello\nthere\nwhat\nis\nup\n" > f.txt
$ python -q
>>> f = open('f.txt')
>>> def has_another_line(file):
... cur_pos = file.tell()
... does_it = bool(file.readline())
... file.seek(cur_pos)
... return does_it
...
>>> has_another_line(f)
True
>>> f.readline()
'hello\n'
</code></pre>