How could i save all the hashes generated from jpg images into a csv file and not only the last one?

289 Views Asked by At
import imagehash
from PIL import Image
import glob
import numpy as np

image_list = []
for filename in glob.glob('/home/folder/*.jpg'):
    im=Image.open(filename)
    image_list.append(im)
    hash = imagehash.average_hash(im)
    print(hash)
    list_rows = [[hash]]
    np.savetxt("numpy_test.csv", list_rows, delimiter=",", fmt='% s')

how to save all the hashes generated into the same csv file and not only the last one

1

There are 1 best solutions below

0
On BEST ANSWER

Here, you're overwriting your list_rows variable for every step in the loop. You should append to the list instead, and then write the content of the list to your csv.

import imagehash
from PIL import Image
import glob
import numpy as np

image_list = []
list_rows = []

for filename in glob.glob('/home/folder/*.jpg'):
    im = Image.open(filename)
    image_list.append(im)
    img_hash = imagehash.average_hash(im)
    print(img_hash)
    list_rows.append([img_hash])

np.savetxt("numpy_test.csv", list_rows, delimiter=",", fmt='% s')

PS: Try not to override builtin (like hash) that may be dangerous !