2
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

Python + Exiftool でファイルメタデータ取得

Posted at

この記事は?

Exiftool (及びそのラッパー) を用いて、Python でファイルのメタデータを取得する方法です。

Exiftool というは、様々なファイルのメタデータの取得や書き込みができるコマンドラインツールです。
この記事では、読み込み方法にだけ触れており、書き込み方法には触れておりません。

pyexiftoolで取得

pip install pyexiftool
from exiftool import ExifTool

with ExifTool() as et:
  data = et.get_metadata("<FileName>")
  # data: dict型

# 必要に応じて dict型のメソッドを用いてデータ取得
print(data.get("File:FileName"))

複数ファイルを一度に指定することもできます。

from exiftool import ExifTool

with ExifTool() as et:
  data = et.get_metadata_batch(["<File1>", "<File2>"])
  # data   : list型
  # data[n]: dict型

特定のタグのみを取得することもできます。

from exiftool import ExifTool

with ExifTool() as et:
  data = et.get_tag("File:FileName", "<FileName>")
  # data   : str型
  data = et.get_tags(["File:FileName", "File:FileType"], "<FileName>")
  # data   : dict型

# get_tag_batch, get_tags_batch で上記同様に複数ファイル指定も可能

参考:

pyexifinfoで取得

pip install pyexifinfo
from pyexifinfo import information

data = information("<FileName>")
# data: dict型

# 必要に応じて dict型のメソッドを用いてデータ取得
print(data.get("File:FileName"))

CSV や XML での取得も可能。

import pyexifinfo

data = pyexifinfo.get_csv("<FileName>")
# data: str型
data = pyexifinfo.get_json("<FileName>")[0]
# data: dict型
data = pyexifinfo.get_xml("<FileName>")
# data: str型

参考:

外部コマンド実行で取得

exiftoolコマンドを外部コマンド呼び出しで実行し、標準出力を取得するという無理やりな方法です。
当然ながら、この方法ではexiftoolコマンドがインストールされている必要があります。

# On APT (Debian, Ubuntu...)
sudo apt install exiftool
from subprocess import run, PIPE

buf = run("exiftool -s3 -FileName 'FileName'", shell=True, stdout=PIPE)
# buf: bytes型
data = buf.stdout.decode("UTF-8").strip("\n")
# data: str型

-FileNameオプションは、ファイル名のみを表示させるオプション。
その他メタデータを表示させるには、別のタグを記述、あるいは記述無しで全表示。
全メタデータを取得してやりくりするには、文字列処理を自力で書かなければならない。

(地味に大掛かりなことをやっているので、この方法は非推奨です。)

2
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?