擅长:python、mysql、java
<p>python3明确区分了原始字节字符串和utf-8字符串。<code>content[line-1]</code>返回一个数字,可能是0-255字节,您试图将其与字符串<code>'\r'</code>匹配。我同意可能会进行转换,但是Python是强类型的,因此无论整数代表什么字符,转换都将失败。要获取对应于<code>\r</code>的<code>byte</code>数字,请使用:</p>
<pre><code>(content[line-1]) != ord('\r')
</code></pre>
<p>类似地,使用字节字符串生成迭代器:</p>
<pre><code>newLinePos = [m.start() for m in re.finditer(b'\n', content)]
</code></pre>