我正在执行多线程并尝试将',F
'附加到msg(string)'pSDATA,0,4,2,2,0,4\n
'中。最后,我希望在运行以下代码时获得“pSDATA,0,4,2,2,0,4,F\n
”:
if(msg[0].lower() == 'p'):
msg = msg[:-1] + ',F\n'
pcQueue.put_nowait(msg[1:])
print ("Message received: ") + msg[1:]
结果如下:
,Fssage received: SDATA,0,4,2,2,0,4
我怀疑这是由于多线程。任何帮助都将不胜感激!你知道吗
如果有多个线程同时打印到控制台,则不能保证打印是原子的。这意味着来自不同线程的消息确实可以在控制台上交错。如果这是一个问题,您应该使用同步(http://effbot.org/zone/thread-synchronization.htm)。你知道吗
另一方面,没有理由认为放入队列的消息在任何方面都是损坏的。如果你不这么想,你需要提供更多的细节。你知道吗
如果试图删除带有
msg[:-1]
的尾随换行符,请注意字符串可能以"\r\n"
结尾。\r
通常具有返回到输出行开头并继续在那里写入的效果。正确的操作过程取决于您想要删除尾随换行符的确切原因,但是如果您想要从末尾删除一个换行符(可选地,同时支持\r\n
和\n
),那么您可以这样做:其他选择可能包括
msg.rstrip()
删除结尾的所有空白,msg[:-2]
如果您确定它总是以crlf结尾…。你知道吗另外,如果所涉及的任何协议都指定了对crlf的偏好,或者即使它只是与您传递的内容一致,您可能希望添加
,F\r\n
,而不是,F\n
。你知道吗相关问题 更多 >
编程相关推荐