我有一个二进制文件,大小为数百MB。它包含float32 big-endian格式的示例(每个示例4个字节)。我想把它们转换成little endian格式。一些背景:我想把它们写在一个网站上。wav文件,需要小端格式afaik的数据。
下面的代码是我当前使用的代码。它似乎工作正常,但速度相当慢(我想是因为我一次只写4个字节):
import struct
infile = "infile_big_endian.raw"
outfile = "outfile_little_endian.raw"
with open(infile, "rb") as old, open(outfile , "wb") as new:
for chunk in iter(lambda: old.read(4), b""):
chunk = struct.pack("<f", struct.unpack(">f", chunk)[0])
new.write(chunk)
在python中有没有更快的方法来实现这一点?