Rename Photos Based on Date or Timestamp Metadata using Python
Are you tired of manually renaming your photos with dates or timestamps? 📸 Do you want to learn how to automate this process using Python? Python makes it easy to extract metadata from images like timestamps. In this post, we’ll explore how to rename photos based on date or timestamp metadata using Python.
**Metadata Extraction**
METADATA is additional information stored with an image file. It can include timestamps, geolocation, camera metadata, and more. Python has a library called `exifread` that can help us extract metadata from images. We’ll use this library to extract the timestamp metadata from our images.
**Code**
First, let’s install the `exifread` library if you don’t already have it:
pip install exifread
Now, let’s create a Python script to extract the timestamp metadata and rename the images:
import os
import exifread
import glob
import datetime
# Set the directory path
directory_path = '/path/to/your/images'
# Get the list of files in the directory
files = glob.glob(os.path.join(directory_path, '*'))
# Loop through each file
for filename in files:
# Open the file
with open(filename, 'rb') as file:
# Read the metadata
tags = exifread.process_file(file)
# Check if we found a timestamp
if 'timestamp' in str(tags):
# Extract the timestamp
timestamp = tags['timestamp'].values[0]
# Convert the timestamp to a date
date_string = datetime.datetime.fromtimestamp(int(timestamp)).strftime('%Y-%m-%d %H-%M-%S')
# Rename the file
new_filename = os.path.splitext(os.path.basename(filename))[0] + '_' + date_string + '.jpg'
os.rename(filename, os.path.join(os.path.dirname(filename), new_filename))
else:
print(f"Could not find timestamp for {filename}")
**How it Works**
The script starts by getting the list of files in the specified directory. Then, it loops through each file and opens it in binary mode. It reads the metadata using `exifread` and checks if it found a timestamp. If it did, it extracts the timestamp, converts it to a date formats, and renames the file with the new date string.
**Output**
After running the script, your files will be renamed with the timestamp metadata. For example, if you have a file named `2022-01-01 14:30:00.jpg`, it will be renamed to something like `image_2022-01-01 14:30:00.jpg`.
**Conclusion**
Renames photos based on date or timestamp metadata using Python is an easy task! The `exifread` library and some basic Python scripting can simplify this process. Try this script out and see how it can help you automate your image organization. Do you have any experience with metadata extraction or image renaming? How do you usually organize your images? Share your thoughts in the comments! 💬
**Tags**:
* Python
* Exifread
* Metadata
* Timestamp
* Image Renaming
* Photo Organization