擅长:python、mysql、java
<p>这是主要区别:</p>
<p>一个<a href="https://docs.python.org/2/library/stdtypes.html#file-objects" rel="nofollow">^{<cd1>}</a>对象有<a href="https://docs.python.org/2/library/stdtypes.html#file.readlines" rel="nofollow">^{<cd2>}</a>但没有<code>split</code>:</p>
<pre><code>>>> print hasattr(file, 'split')
False
>>> print hasattr(file, 'readlines')
True
</code></pre>
<p>一个<a href="https://docs.python.org/2/library/stdtypes.html#typesseq" rel="nofollow">^{<cd4>}</a>对象有<a href="https://docs.python.org/2/library/stdtypes.html#str.split" rel="nofollow">^{<cd3>}</a>但没有<code>readlines</code>:</p>
<pre><code>>>> hasattr("somestring", 'split')
True
>>> hasattr("somestring", 'readlines')
False
</code></pre>
<p>为了回答你的问题,一个在字符串对象上操作,一个在文件对象上操作。</p>
<p>它们不会做相同的事情,因为一个在文件上操作时返回一个行列表,一个在字符串上操作时返回一个拆分行。</p>