擅长:python、mysql、java
<p>正如<em>@iCodez</em>所建议的,最好使用<code>str.splitlines</code>。你知道吗</p>
<p>乍一看,这似乎和做<code>split('\n')</code>一样,<strong>他们有不同的行为。你知道吗</p>
<p>python上的<code>\n</code>表示换行符,与运行换行符的平台无关。然而,<a href="https://en.wikipedia.org/wiki/Newline#Representations" rel="nofollow">this representation is platform-dependent</a>。在windows上,<code>\n</code>是两个字符,<code>CR</code>和<code>LF</code>(ASCII十进制代码13和10),而在任何现代unix(包括OS X)上,它是单个字符<code>LF</code>。你知道吗</p>
<p><code>print</code>例如,即使您的字符串的行尾与您的平台不匹配,也可以正常工作:</p>
<pre><code>>>> print "a\x0ab\x0d\x0ac"
a
b
c
</code></pre>
<p>但是,在“\n”上显式拆分将产生依赖于平台的行为:</p>
<pre><code>>>> "a\x0ab\x0d\x0ac".split("\n")
['a', 'b\r', 'c']
</code></pre>
<p>因此,最好使用<code>splitlines</code>:</p>
<pre><code>>>> "a\x0ab\x0d\x0ac".splitlines()
['a', 'b', 'c']
</code></pre>