Извлечение метаданных из файлов изображений (IPTC) в приложении Flask – проблемы решены – очистить файл pyPython

Программы на Python
Anonymous
Извлечение метаданных из файлов изображений (IPTC) в приложении Flask – проблемы решены – очистить файл py

Сообщение Anonymous »

У меня возникла сложная проблема с файлами изображений (в PAW: PythonAnywhere).
При написании кода для извлечения метаданных из файлов изображений я преуспеваю с некоторыми из них, в то время как другие утверждают, что не существуют или не являются файлами.
Однако все файлы jpg эквивалентны для обработки моим кодом:
  • Все находятся в одной папке, и у меня нет проблем с путем к ним
  • Все файлы в формате jpg, jpeg; некоторые из них содержат метаданные, добавленные вручную (с помощью инструмента ACDSEE в Windows): но именно эти файлы обрабатываются правильно

Код: Выделить всё

import os, os.path
import iptcinfo3

from pathlib import Path

for fname in os.listdir('static/ImagesCabWillA'):
fil1=Path(fname)
if not fil1.exists():
print(fname, " doesn't exist")
print("§"*15)

for fname in os.listdir('static/ImagesCabWillA'):
if os.path.isfile(fname):
print('ok ', fname, 'type : ', type(fname))
else:
print('NOT ok : ',fname, 'type : ', type(fname))

print('==== end list1 ====')

for fname in os.listdir('static/ImagesCabWillA'):
if os.path.isfile(fname) and fname.split(".")[1] in ("jpg","jpeg","JPG","JPEG"):
print("\n",fname,"\n")
info = iptcinfo3.IPTCInfo(fname, force=True)
print('-----------')
print(info)
# python what is b prefix in string printing : byte, byte string
print (type(info["headline"]))
print('=============')      #       
#        if isinstance(info['object name'],bytes):
print('zzzzzzzzz')
print(info["headline"].decode("utf-8"))     #       , "\n"
print(info["object name"].decode("utf-8"), "\n" )
Я довольно много искал в Google, но так и не понял:
  • Нет ничего конкретного во Flask в этом проблемном коде; это простой и понятный Python...
  • Я пробовал использовать os.path.isfile() и pathlib.Path(), но проблема та же....
  • Я подозреваю, что существует неоднородность кодировки различных имен файлов jpg или внутреннего кодирования файлов jpg (некоторые изначально пришли через Whatsapp, а другие — с телефона или с камеры…)
  • Я подозреваю, что класс файлового объекта изменяется в результате обработки цикла for...
Любая идея будет приветствоватьсяМой текущий код, направленный на отладку этой проблемы:
test_iptc3.py
содержимое папки:
01.jpg 2024-03-22 20:33 45,3 КБ
02_DSCF0225.JPG 2024-03-22 20:33 525,5 КБ
03_IMG-20220517-WA0006.jpeg 22 марта 2024 20:33 317,7 КБ 04_IMG_20220207_182856.jpg 22 марта 2024 20:33 386,8 КБ
05_IMG-20220325-WA0014.jpeg 22 марта 2024 20:33 201 .5 КБ
06_IMG- 20220517-WA0013.jpeg 2024-03-22 20:33 303,9 КБ
07_IMG-20220325-WA0021.jpeg 2024-03-22 20:33 197,9 КБ
08_IMG_20220509_193214. jpg 2024-03-22 20: 33 430,4 КБ
09_DSCF8528.JPG 22 марта 2024 20:33 273,1 КБ
DSCF9384Lite.JPG 14 апреля 2024 17:42 462,2 КБ
DSCF9387Lite.JPG 14 апреля 2024 16 :33 496,4 КБ
Вывод консоли Python:

Подробнее здесь: https://stackoverflow.com/questions/783 ... s-solved-c

Вернуться в «Python»