我正在尝试为一个功能创建单元测试,该功能从文件夹中读取每个图像并将它们保存在列表中。
以下是该函数的简化版本:
def read_images(directory):
image_paths = os.listdir(directory)
images = []
for im in image_paths:
images.append(cv2.imread(os.path.join(directory, im)))
return images
This other question使我接近解决方案,但就我而言,我希望创建的伪造文件是图像(基本上是数组),以便可以用cv2.imread
读取它们。
我的想法是不必创建任何临时文件夹,当然也不必连接任何外部文件夹或数据库。这可能吗?
编辑:为清楚起见,我不想创建临时文件夹或临时图像文件。我想知道是否有一种方法告诉程序:“ 这里有一个文件夹,并且在其中有一些具有这种形状的图像/数组”,但是实际上不必在内存中创建任何内容。
答案 0 :(得分:0)
如果您实际上需要临时文件,则应检查tempfile。
它允许您创建提供自动清理的临时文件和目录,因此,如果您有机会使用该文件来测试所需的内容,则不会有垃圾文件。
编辑
如果您真的不想使用临时文件或临时文件夹,这是另一个与您的问题有关的解决方案:
为测试生成内存图像。
from io import BytesIO
from PIL import Image
def create_in_memory_image():
in_memory_file = BytesIO()
image = Image.new('RGBA',
size=(0, 0),
color=(155, 0, 0))
image.save(in_memory_file,
'png')
in_memory_file.name = 'tmp_testing_name.png'
in_memory_file.seek(0)
return in_memory_file
答案 1 :(得分:0)
如何模拟其中包含伪造图像的伪造文件夹?
Tweepy Cursor