Registry / data / exifread

exifread

JSON →
library3.5.1pypypi✓ verified 23d ago

ExifRead is a Python library to read Exif metadata from TIFF and JPEG files, with support for additional formats like HEIC, WebP, and PNG. Current version is 3.5.1, released under the BSD license. Release cadence is irregular, with updates every few months.

pip install exifread
INSTALL
IMPORT
SIG · EXIFREAD
E
exifread
datapythonv3.5.1
Install
1.5s avg
Import
109ms
Disk
16MB
Pass rate
10/ 10
Env Coverage10 / 10
glibc
3.93.13
musl
3.93.13
Install & Compatibility
Where this runs
tested against v3.5.1 · pip install
no network on importno background threads
Install × environment matrix
Each cell = how many times install + import succeeded across repeated harness runs. Partial = flaky.
glibc = Debian/Ubuntu slim · musl = Alpine Linux
musl
py 3.103.95 runs
installs and imports cleanly · install 0.0s · import 0.118s · 18.3MB
glibc
py 3.103.95 runs
installs and imports cleanly · install 1.5s · import 0.100s · 19MB
16MB installed
● package 16MB
Code
Verified usage

Verified import paths — ran on the pinned version, not inferred.

process_file
from exifread import process_file
import exifread
Many users incorrectly import the module directly, but the main function is process_file.
EXIF_TAGS
from exifread import EXIF_TAGS
from exifread.tags import EXIF_TAGS
In older versions, EXIF_TAGS was in exifread.tags, but since 3.0.0 it is directly available from exifread.
HeuristicRecorder
from exifread.heuristics import HeuristicRecorder

Open an image file in binary mode, process EXIF tags, and print all tags except binary/thumbnail fields.

import exifread with open('image.jpg', 'rb') as f: tags = exifread.process_file(f) for tag in tags.keys(): if tag not in ('JPEGThumbnail', 'TIFFThumbnail', 'ThumbnailOffset', 'ThumbnailLength', 'EXIF MakerNote'): print(f"{tag}: {tags[tag]}")
Debug
Known issues
breakingIn version 3.0.0, type hints were added and Python 2 support was dropped. Code relying on Python 2 strings (e.g., str/unicode) will break.
fix
Update code to Python 3 only and adapt to type hints.
affects: >=3.0.0
gotchaThe process_file() function returns an IFD (Image File Directory) object-like dictionary containing Exif tags. Many fields are still in the raw IFD format; they need to be printed or converted manually.
fix
Use str(tag) or tag.printable to get a human-readable string, or access the values via .values, .printable.
affects: all
deprecatedThe extract_thumbnail parameter in process_file() is deprecated as of version 3.1.0. Use process_file() with the default setting and access thumbnail via tags['JPEGThumbnail'].
fix
Remove extract_thumbnail=True and instead retrieve thumbnail data from tags['JPEGThumbnail'].
affects: >=3.1.0
Errors
Common errors & fixes
AttributeError: module 'exifread' has no attribute 'process_file'
Importing the module incorrectly, e.g. 'import exifread' and then 'exifread.process_file()'.
fix
Use 'from exifread import process_file' and then call 'process_file()'.
KeyError: 'Image ImageWidth'
Trying to access a tag using a format that includes an IFD prefix, like 'Image ImageWidth' instead of the actual key.
fix
Print the dictionary keys to see the exact tag names, e.g. 'ImageWidth' often has the IFD name 'Image ImageWidth' but the dictionary key includes the IFD. Use print(tags.keys()) to inspect.
Upgrade
Version history
3.5.1latest on PyPI · released Aug 23, 2025
Audit
Dependencies

No dependency data recorded yet.

Agent activity
13 hits · last 30 days
node
12
Resources
exifread — pip install exifread · libregistry