最近我遇到了一個奇怪的問題,希望這裏有人能幫助我。我在Ubuntu12.04中使用Python2.7,Python和OS都是64位。stringio.write和+ =上的字節流不同
在我的代碼中,我需要繼續將傳入的數據流附加到字節數組, 我使用self.data + = incomingdata來實現此目的,其中incomingdata是我從硬件設備接收的數據。然後,我會在稍後解壓字節數組以解析接收到的數據。附加和解析操作全部通過鎖保護。
這裏的問題是,當我使用「+ =」追加字節流時,數據似乎在某些點被破壞(不一致)。沒有內存使用錯誤,沒有溢出等。我監視了程序的內存使用情況,看起來不錯。
然後,當我改變「+ =」到cStringIO.write來實現附加操作時,完全沒有問題,儘管它似乎比「+ =」操作慢。
誰能告訴我cStringIo.write和「+ =」在使用字節流時的區別是什麼? 「+ =」操作是否會導致任何潛在的問題?
聽起來像'cStringIO.write()'可能更適合OP的用例......加上他們使用它的代碼版本已經存在。 – martineau
是的,我可能會使用它。 –