这是我的代码,它非常简单,我下载一个文件(带有lib请求)并将其保存到磁盘,但我得到的大小与实际大小写入磁盘不同
mus_resp =r.get("http://audio.xmcdn.com/group7/M07/21/73/wKgDWlbmOa3TD0D_AArDQp_Mj5Y641.m4a",headers=headers, stream=True)
#print len(mus_resp.content) here is 705346 bytes
fd = open( "file", 'w')
fd.write(mus_resp.content)
fd.flush()
fd.close()
exit()
print os.path.getsize('file') here is 708677 bytes
答案 0 :(得分:1)
您的数据是二进制数据,而不是文本,并且它可能包含半随机的\n
个字符(它们不代表换行符,它只是与ASCII换行符相同的字节)。当您将它们写入Windows上的文本模式文件时,它将无缝转换为\r\n
(Windows标准行结尾),使最终文件膨胀。以二进制模式打开文件,您将禁用行结束转换:
fd = open("file", 'wb') # 'wb' means write binary mode