2024-05-28 23:28:36 发布
网友
在下面的代码中,我试图从Python套接字接收一个文件并将其写入本地文件 我有以下代码
chunk=clientDtSocket.recv(1024) while chunk: print("In Chunk"+str(chunk)) incomingFile.write(chunk) chunk=clientDtSocket.recv(1024)
我被跟踪了
In Chunkb'Sohail Khan'
但文件大小保持不变。 还有,如何计算接收到的字节数。你知道吗
确保循环结束后关闭文件。你知道吗
您可以使用len函数检查接收的字节数:
len
chunk = clientDtSocket.recv(1024) while chunk: print("received {} bytes".format(len(chunk))) # < - print("In Chunk " + str(chunk)) incomingFile.write(chunk) chunk = clientDtSocket.recv(1024) incomingFile.close() # <
与其手动关闭文件,不如考虑使用^{} statement:
with open('/path/to/localfile', 'wb') as incomingFile: ....
打开文件时,请将“写入缓冲区大小”设置为0:
bufsize = 0 incomingFile = open('....', 'w', bufsize)
通常情况下,调用write函数后,数据不是立即保存到文件中,而是完全填满后写缓冲区。但如果您将缓冲区大小设置为0(如上述axsample中所示),则yoor数据将被写入immidiatel。将数据从写缓冲区写入文件通常称为“刷新”
关闭文件时也会刷新:
incomingFile.close()
确保循环结束后关闭文件。你知道吗
您可以使用
len
函数检查接收的字节数:与其手动关闭文件,不如考虑使用^{} statement :
打开文件时,请将“写入缓冲区大小”设置为0:
通常情况下,调用write函数后,数据不是立即保存到文件中,而是完全填满后写缓冲区。但如果您将缓冲区大小设置为0(如上述axsample中所示),则yoor数据将被写入immidiatel。将数据从写缓冲区写入文件通常称为“刷新”
关闭文件时也会刷新:
相关问题 更多 >
编程相关推荐