-3

I have a folder which contains images. The name is like this :

ID03_013_bmp.rf.1d3821394d2c0b482202e204edde93b1.jpg

I want to rename each image, save 8 first characters and remove the rest. and thank you.

ramy
  • 1
  • 3

2 Answers2

1

You can use the following script, which uses the os standard library.

import os

folder_dir = "/your/folder/directory" # Path to your folder

filenames = os.listdir(folder_dir) # List all the files in the folder
ids = [] # List of the the first 8 characters of your filenames

for file in filenames:
    id = file.split(".")[0][:8]
    ids.append(id) 
    target_name = id + ".jpg" # Define how you want your files to be named, currently based on the first 8 characters
    current_path = os.path.join(folder_dir, file)
    target_path = os.path.join(folder_dir, target_name)
    os.rename(current_path, target_path)
AndrejH
  • 2,028
  • 1
  • 11
  • 23
0
import os

# Save the folder location in a variable path
# Windows
# path = "C://Users//<username>//"
# macOS
path = "/Users/<username>/..."

# Get all filenames in that path into a list
images = os.listdir(path)

# Loop over the list
for i in images:
    # Build new file name with first 8 letters of the old file name + suffix .jpg
    new_name = f"{i[:8]}.jpg"

    # display the new name
    print(new_name)

    # Do the rename operation (you can comment this out for testing)
    os.rename(f"{path}{i}", f"{path}{new_name}")
djk96
  • 1
  • 1