python-3.x - Python3:写入文件时从字符串中删除“b”
问题描述
我正在使用 Python3 将传入的数据从 tcp 连接转发到字符设备。下面的代码是我从 tcp 流接收数据的部分。数据应全部解释为 ASCII。一旦形状 [...] 的数据报完成,它应该被发送到字符设备文件。
def tcp2devWorker(devwrt,tcp):
tcp2devbuf="";
while (1):
chunk=str(tcp.recv(64));
for b in range(len(chunk)):
if chunk[b]=="[":
tcp2devbuf="[";
elif chunk[b]=="]":
tcp2devbuf+="]";
print("From TCP: ",tcp2devbuf);
devwrt.write(tcp2devbuf);
devwrt.flush();
else:
tcp2devbuf+=str(chunk[b]);
打印在每个块的前面显示“b”。我以为是印刷品。而在字符器中也是显示出来的。打印输出:
From TCP: [)!!!!!!!!!!!!!!|SEFMTE8K#######################################'b'################################################################'b'################################################################'b'################################################################'b'#############################################################]
我读到它与编码有关,但我没有正确理解这个概念。无论我以何种方式编码和解码,都无法摆脱'b'。
有人可以指出我所缺少的吗?
解决方案
如果您只想'b'
从tcp2devbuf
. 然后你可以使用tcp2devbuf.replace("'b'","")
.
像这样
def tcp2devWorker(devwrt,tcp):
tcp2devbuf="";
while (1):
chunk=str(tcp.recv(64));
for b in range(len(chunk)):
if chunk[b]=="[":
tcp2devbuf="[";
elif chunk[b]=="]":
tcp2devbuf+="]";
tcp2tcp2devbuf = devbuf.replace("'b'","") # <---
print("From TCP: ",tcp2devbuf);
devwrt.write(tcp2devbuf);
devwrt.flush();
else:
tcp2devbuf+=str(chunk[b]);
推荐阅读
- c++ - MSYS2 MinGW64 在 Windows 上构建 GMP/MPFR 作为静态库,并将它们链接到用 CL 编译的 MSVC 项目中
- android-studio - 运行颤振应用程序时android studio中的gradle错误
- tkinter - 完全删除标签
- python - Keras 中 model.evaluate 和 model.predict 的结果存在差异
- messaging - 如何使用纯 javascript 在 mesibo 中获取特定用户或组的所有消息
- python - python字符串拆分切片并放入列表
- angular - 组中的自定义 ag-grid 单元格
- google-apps-script - GAS:连接到 API 时出现错误 500
- c# - 将文件上传/下载到 Google Cloud Storage 时可能出现的异常
- java - Ant+ 连接性