1

我使用pyexiv2库读取图像exif信息。我发现ImageMetadata.from_buffer()方法在图像不完整时会导致内存泄漏。但是 ImageMetadata() 方法是可以的。

下面的代码是我的测试代码,当我让它从一个不是图像的文件中读取时,你会看到内存不是空闲的。

import pyexiv2
import time
import sys
import os

def read_metadata(file_data):

    try:

        metadata = pyexiv2.ImageMetadata(file_data)

        metadata = pyexiv2.ImageMetadata.from_buffer(file_data)

        metadata.read()

    except Exception,e:
        print e

filename = sys.argv[1]

print filename

write_metadata(open(filename).read())

time.sleep(10000)
4

0 回答 0