Я пытаюсь создать средство поиска файлов, и что касается типов файлов, перечисленных в extensions
go, то, тем не менее, у меня все хорошо, как только я приступаю к сложной части попытки получить метаданные для файлов * .psd (см. раздел, помеченный ### PROBLEMATI C КОД НАЧИНАЕТСЯ ЗДЕСЬ ###), я получаю сообщение об ошибке, которое не могу решить простым поиском в Google.
На первый взгляд это был прямой выстрел с использованием psd_tools.PSDImage, увы я получаю ошибку:
raise Error("This is not a PSD or PSB file")
psd_tools.exceptions.Error: This is not a PSD or PSB file
Само по себе, что мне свойственно, поскольку elif filename.lower().endswith('.psd'):
должно указывать что мы на самом деле имеем дело с * .psd. Я, конечно, предоставлю большую часть сообщения об ошибке, если это необходимо; просто дайте мне знать:)
Есть ли какие-нибудь эксперты, которым хотелось бы пролить свет на эту головоломку?
Вот мой код во всей его сомнительной славе:
#!/src/bin/env/python3
import os
import shutil
from PIL import Image
from psd_tools import PSDImage
import exiftool
extensions = [
'.jpg',
'.jpeg',
'.tif',
'.tiff',
'.png',
'.bmp',
'.gif',
'.raw'
]
greatest_hits = []
drive_name = os.path.expanduser('~/Documents')
for foldername, subfolders, filenames in os.walk(drive_name):
for filename in filenames:
for extension in extensions:
if filename.lower().endswith(extension):
current = os.path.join(foldername, filename)
file_weight = str(os.path.getsize(current)/1000) + ' kB'
im = Image.open(current)
file_width, file_height = im.size
# print('{:50s}{size:>10}{width:>8}{height:>8}'.format(filename, size=file_weight, width=file_width, height=file_height))
dict_x = {'name':filename, 'path':current, 'size':file_weight, 'width': file_width, 'height': file_height}
greatest_hits.append(dict_x)
### PROBLEMATIC CODE BEGINS HERE! ###
elif filename.lower().endswith('.psd'):
psd_im = PSDImage.load(current)
print(psd.header)