当前,我无法从其他客户端软件接收到的数据写入到一个文件中,该文件将在每次转储后追加并添加一个空格。我尝试了很多不同的方法,但是现在我已经离开了,我有些困惑。
此刻,我无法再写文件了,而且不确定执行销毁那部分代码的方式。
while True:
data = s.recv(1024).decode('utf-8')
if data:
with open("data.txt", 'w') as f:
json.dump(data, f, ensure_ascii=False)
我希望每次出现新数据时,都会出现一个不会被覆盖的文件,从而使我能够开发应用程序的搜索和表功能。
答案 0 :(得分:0)
您当前对每个块执行的操作:
'w'
模式)为什么这样做很糟糕:
'w'
而非'a'
模式来删除现有文件,而且一遍又一遍地打开和关闭文件效率很低,而且通常是个坏主意。您应该如何做:
示例代码:
with open('data.txt', 'wb') as file:
while True:
data = s.recv(1024)
if not data:
break
file.write(data)
如果二进制流包含UTF-8编码的JSON数据,那么您将在文件中得到该信息。