这种情况多年来发生在我身上,在不同的机器上有很多不同的脚本。
今天我有一个这样的剧本:
def calc_hash(fname, hash_size = 8):
image = Image.open(fname)
# Grayscale and shrink the image in one step.
image = image.convert('L').resize(
(hash_size + 1, hash_size),
Image.ANTIALIAS,
)
pixels = list(image.getdata())
# Compare adjacent pixels.
difference = []
for row in xrange(hash_size):
for col in xrange(hash_size):
pixel_left = image.getpixel((col, row))
pixel_right = image.getpixel((col + 1, row))
difference.append(pixel_left > pixel_right)
# Convert the binary array to a hexadecimal string.
decimal_value = 0
hex_string = []
for index, value in enumerate(difference):
if value:
decimal_value += 2**(index % 8)
if (index % 8) == 7:
hex_string.append(hex(decimal_value)[2:].rjust(2, '0'))
decimal_value = 0
return ''.join(hex_string)
for i in os.listdir(target_folder):
print calc_hash(i)
(注意这是使用Pillow库)
我让它运行了几个小时,当我回来时它被卡住而没有显示任何错误。一旦我点击进入,它继续正常运行。我刚刚运行了脚本,这次它没有冻结。为什么这会经常发生在我身上?