擅长:python、mysql、java
<p>如果试图删除带有<code>msg[:-1]</code>的尾随换行符,请注意字符串可能以<code>"\r\n"</code>结尾。<code>\r</code>通常具有返回到输出行开头并继续在那里写入的效果。正确的操作过程取决于您想要删除尾随换行符的确切原因,但是如果您想要从末尾删除一个换行符(可选地,同时支持<code>\r\n</code>和<code>\n</code>),那么您可以这样做:</p>
<pre><code>def chomp(s):
if s.endswith('\n'):
if s.endswith('\r\n'):
return s[:-2]
return s[:-1]
return s
⋮
if msg[0].lower() == 'p':
msg = chomp(msg) + ',F\n'
⋮
</code></pre>
<p>其他选择可能包括<code>msg.rstrip()</code>删除结尾的所有空白,<code>msg[:-2]</code>如果您确定它总是以crlf结尾…。你知道吗</p>
<p>另外,如果所涉及的任何协议都指定了对crlf的偏好,或者即使它只是与您传递的内容一致,您可能希望添加<code>,F\r\n</code>,而不是<code>,F\n</code>。你知道吗</p>