私は78個のjpeg画像を含むフォルダを持っていますが、そのうち48個だけが一意です。このフォルダー内のファイルをPythonで繰り返し処理し、画像が重複していない限り、各ファイル名のリストを出力してもらいたいと思います。
具体的には、PHPスクリプトにコピーして貼り付けて使用できる配列を出力します。
私の考えは、ファイルを反復処理しながら、ファイルのソースのmd5を配列に保存することです。ただし、ハッシュがすでに配列にある場合は、ファイルを無視して先に進みます。
これが私のスクリプトです:
from os import listdir
from os import path
from hashlib import md5
m = md5()
hashes = []
d = path.join("Z:\\mydir")
files = listdir(d);
i = 1;
print " array("
for file in files:
src = "Z:\\mydir\\%s" % file
src = open(src)
src = src.read()
m.update(src)
hash = m.digest()
if(hash not in hashes):
hashes.append(hash)
if(i == len(files)):
print "\"%s\"" % file
else:
print "\"%s\"," % file
i += 1
print ");"
これはすべての画像を印刷しています!
この問題はjpegファイルの先頭にあるメタデータが原因である可能性があると考えたため、ソースの後半のみを読み取ろうとしました。
halfsrclen = len(src) / 2
m.update(src[halfsrclen:])
hash = m.digest()
しかし、これはまだ各ファイルを返しています!
私はおそらく非常に間違ったことをしているのですが、私には何がわかりません:(