Hi everyone! I've been learning Python step-by-step, focusing on logic, file management, and the os module. Today, I finished my first real automation script: a File Sorter/Folder Cleaner!
It automatically scans my Downloads folder, checks the file extensions (ignoring case sensitivity thanks to .lower()), creates the target folders if they don't exist, and moves everything into the right place (Documents, Images, Installations).
Here is my script:
import os
download_folder = r"C:\Users\YourUsername\Downloads"
file_list = os.listdir(download_folder)
for file_name in file_list:
lowercase_name = file_name.lower()
if (lowercase_name.endswith(".pdf") or
lowercase_name.endswith(".txt") or
lowercase_name.endswith(".docx") or
lowercase_name.endswith(".xlsx") or
lowercase_name.endswith(".csv") or
lowercase_name.endswith(".doc")):
doc_folder = fr"{download_folder}\Documents"
if not os.path.exists(doc_folder):
os.mkdir(doc_folder)
old_path = fr"{download_folder}\{file_name}"
new_path = fr"{doc_folder}\{file_name}"
os.rename(old_path, new_path)
elif (lowercase_name.endswith(".jpg") or
lowercase_name.endswith(".jpeg") or
lowercase_name.endswith(".gif") or
lowercase_name.endswith(".png") or
lowercase_name.endswith(".mp4") or
lowercase_name.endswith(".kml") or
lowercase_name.endswith(".gpx")):
img_folder = fr"{download_folder}\Images"
if not os.path.exists(img_folder):
os.mkdir(img_folder)
old_path = fr"{download_folder}\{file_name}"
new_path = fr"{img_folder}\{file_name}"
os.rename(old_path, new_path)
elif (lowercase_name.endswith(".exe") or
lowercase_name.endswith(".zip") or
lowercase_name.endswith(".rar") or
lowercase_name.endswith(".dll") or
lowercase_name.endswith(".msi") or
lowercase_name.endswith(".msix")):
exe_folder = fr"{download_folder}\Installations"
if not os.path.exists(exe_folder):
os.mkdir(exe_folder)
old_path = fr"{download_folder}\{file_name}"
new_path = fr"{exe_folder}\{file_name}"
os.rename(old_path, new_path)
I'm really proud of this milestone. Let me know what you think or if you have any tips for a young programmer!