0

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

解决了甚至让它循环到我的文件名在“旧(1)”“旧(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
4

1 回答 1

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 可能不会耗尽您的内存,这可能比您真正需要的要复杂得多。

于 2013-08-02T14:18:50.833 回答