Сегодня будем писать скрипт для получения метаданных из картинок фото. Метаданные - данные о самих данных. Сегодня мы научимся их доставать.
Для написания нам понадобится библиотека Pillow и argparse.
#тут указывайте свой путь к python
#кодировка
#импортируем необходимые модули
#функция ниже получает на вход имя файла(картинки) и имя файла(для вывода информации)
#получаем словарь из метаданных картинки и выводим его в терминал, #если не указано имя файла для вывода информации.
#перебор данных в словаре с метаданными
#если указано имя файла то выводим в файл
#если произошла ошибка выводим сообщение о ней
#функция main(). Парсим в ней аргументы командной строки.
#точка входа
Пример вывода нашего скрипта:
(c) By Hacker
Для написания нам понадобится библиотека Pillow и argparse.
Код:
#!/usr/bin/python3.6
Код:
# -*- coding: utf-8 -*-
#импортируем необходимые модули
Код:
import argparse
from PIL import Image
from PIL.ExifTags import TAGS
Код:
def getMetaData(imgname, out):
Код:
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")
Код:
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()
Пример вывода нашего скрипта:
(c) By Hacker