删除前6个字节和最后一个字节的最佳方法。蟒蛇

时间:2013-08-02 14:16:56

标签: python byte

我只是寻找获取文件的最佳方法,删除前6个字节和最后一个字节,然后将其保存为.JPG格式。 (原始文件是.TEC格式,用作照片的缓存。)

解决了,甚至让它循环到我的文件名称“Old(1)”“Old(2)”等的地方。这样更容易重命名它们。因为windows会自动以这种格式重命名。我有444个文件要转换,这很好用。现在我可以看到所有的裸体。取胜。

x = 1
while (x < 445):
   fp = open('Change ('+str(x)+').tec', "rb")
   data = fp.read()
   fp.close()

   fp = open('Changed ('+str(x)+').jpg', "wb")
   fp.write(data[6:-1])
   fp.close()
x = x + 1

1 个答案:

答案 0 :(得分:3)

不确定“最佳”是什么意思,但最简单的方法就是将其全部读入并切片:

fp = open(filename, "rb")
data = fp.read()
fp.close()

fp = open(jpegfilename, "wb")
fp.write(data[6:-1])
fp.close()

编辑:

正如评论中指出的那样,如果你的JPEG非常大,那么立即读取整个内容可能会耗尽你的记忆力。相反,你可以一次阅读它,如下所示:

with open(filename, "rb") as ifile:
    with open(jpegfilename, "wb") as ofile:
        ifile.read(6)
        prev = None
        while True:
            chunk = ifile.read(4096)
            if chunk:
                if prev:
                    ofile.write(prev)
                prev = chunk
            else:
                break
        if prev:
            ofile.write(prev[:-1])

但鉴于大多数JPEG可能不会让你的记忆力下降,这可能比你真正需要的更复杂。