One of my most dreaded tasks on the computer is the renaming of images. When I import them from the digicam they’re usually just numbered.
I like to name my photos with a concrete name. For example “rome_2015” or “linus” when I have taken images of my dog. The images also get a numbered index 01,02,03,aso.
Well it’s dreaded not anymore because I wrote a little Python script that will do all the tedious work for me in an instance.
Not only do we rename the images, the program will also detect other files (like system files) and leave them untouched.
Here is a before and after:
To do this the python script needs to know the directory where the photos are located, the desired filename and what file type we like to change (.jpg)
Here is the code (the comments explain the function line by line)
import os directory = "img/" # get the image-directory absolute_dir = os.getcwd() # get your current working dir complete_dir = absolute_dir + "/" + directory # built a complete path to the images #if you would need the desktop dir on mac - use the line below #complete_dir = os.path.expanduser("~/Desktop/test/") num_of_files = 0 # set counter for image-numbers name = "linus" # what you want to name you images # go through every file in given dir for filename in os.listdir(complete_dir): if filename.endswith(".jpg"): # only operate on .jpg files, can be changed to any filetype num_of_files += 1 # thats the number we indes our fotos with new_name = name + "_" + str(num_of_files) + ".jpg" # build the new file name # rename the file, we need complete_dir here because # listdir and rename work on different (absolute and increment) directorys # otherwise we will get an error os.rename(complete_dir + filename, complete_dir + new_name)