• VLMI - форум по обмену информацией. На форуме можете найти способы заработка, разнообразную информацию по интернет-безопасности, обмен знаниями, курсы/сливы.

    После регистрации будут доступны основные разделы.

    Контент форума создают пользователи, администрация за действия пользователей не несёт ответственности, отказ от ответственности. Так же перед использованием форума необходимо ознакомиться с правилами ресурса. Продолжая использовать ресурс вы соглашаетесь с правилами.
  • Подпишись на наш канал в Telegram для информации о актуальных зеркалах форума: https://t.me/vlmiclub

Python Получаем метаданные с помощью Python.

3xpl01t

Местный
Сообщения
34
Реакции
73
0 руб.
Telegram
Метаданные - данные о самих данных. Сегодня мы научимся их доставать.

Метаданные — информация о другой информации, или данные, относящиеся к дополнительной информации о содержимом или объекте. Метаданные раскрывают сведения о признаках и свойствах, характеризующих какие-либо сущности, позволяющие автоматически искать и управлять ими в больших информационных потоках.



Для написания нам понадобится библиотека Pillow и argparse.

Python:
#!/usr/bin/python3.6 #тут указывайте свой путь к python
# -*- coding: utf-8 -*- #кодировка

Python:
#импортируем необходимые модули
import argparse
from PIL import Image
from PIL.ExifTags import TAGS

#функция ниже получает на вход имя файла(картинки) и имя файла(для вывода информации)

Python:
def getMetaData(imgname, out):

#получаем словарь из метаданных картинки и выводим его в терминал, #если не указано имя файла для вывода информации.

Python:
try:
    metaData = {}
    imgFile = Image.open(imgname)
    print("Getting meta data...")
    info = imgFile._getexif()
    if info:
        print("Found meta data!")
#перебор данных в словаре с метаданными
        for (tag, value) in info.items():
               tagname = TAGS.get(tag, tag)
               metaData[tagname] = value
               if not out:
                   print(tagname, value)
#если указано имя файла то выводим в файл
               if out:
                print("Outputting to file...")
               with open(out, 'w') as f:
                   for (tagname, value) in metaData.items():
                       f.write(str(tagname)+"\t"+str(value)+"\n")
  #если произошла ошибка выводим сообщение о ней
except:
                         print("Failed")
#функция main(). Парсим в ней аргументы командной строки.
def main():
   parser = argparse.ArgumentParser()
   parser.add_argument("img", help="name of img file.")
   parser.add_argument("-o", "--output", help="dump data out to file")
   args = parser.parse_args()
   if args.img:
       getMetaData(args.img, args.output)
   else:
       print(parser.usage)
#точка входа
if __name__ == '__main__':
   main()

Пример вывода нашего скрипта:
a3d04f5e19c1362162559.png
 
Сверху Снизу