Do you also take a lot of screenshots and end up with a cluttered Desktop? I've experienced that frustration many times so I ended up writing a Python script to handle the tidying up for me π©π»βπ»
This script automatically detects all the screenshots and pictures on the Desktop and stores them in a β¨ dedicated folder β¨
Step 1: Import modules
Let's start by importing the necessary modules: os
for handling operating system interactions and shutil
for file-related tasks. We'll define the organize_screenshots
function to contain our script's logic.
import os
import shutil
def organize_screenshots(desktop_path, screenshots_folder):
Step 2: Listing Desktop files
We begin by listing all files on the desktop using the listdir
method, which returns a list of file names for a given path.
def organize_screenshots(desktop_path, screenshots_folder):
desktop_files = os.listdir(desktop_path)
Step 3: Create Screenshots Folder
Next, we create the Screenshots folder. We use os.path.join
to join path components and os.makedirs
to create the directory. A check ensures that the Screenshots folder is only created once.
screenshots_path = os.path.join(desktop_path, screenshots_folder)
if not os.path.exists(screenshots_path):
os.makedirs(screenshots_path)
Step 4: Sorting the files
Now, comes the fun part! Let's loop through the desktop files. If a file is a screenshot or picture, we move it to the Screenshots folder using the shutil.move
method with the original and destination file paths.
for file_name in desktop_files:
if file_name.lower().endswith(('.png', '.jpg', '.jpeg') or file_name.lower().startswith('Screen Shot')):
file_path = os.path.join(desktop_path, file_name)
dest_path = os.path.join(screenshots_path, file_name)
shutil.move(file_path, dest_path)
print(f"Moved {file_name} β¨")
Step 5: Bringing It All Together
Finally, let's bring everything together. We call our function with the correct paths and use the if __name__ == "__main__"
construct to specify that this script is intended to be run as the main program.
import os
import shutil
def organize_screenshots(desktop_path, screenshots_folder):
desktop_files = os.listdir(desktop_path)
screenshots_path = os.path.join(desktop_path, screenshots_folder)
if not os.path.exists(screenshots_path):
os.makedirs(screenshots_path)
for file_name in desktop_files:
if file_name.lower().endswith(('.png', '.jpg', '.jpeg') or file_name.lower().startswith('Screen Shot')):
file_path = os.path.join(desktop_path, file_name)
dest_path = os.path.join(screenshots_path, file_name)
shutil.move(file_path, dest_path)
print(f"Moved {file_name} β¨")
if __name__ == "__main__":
desktop_path = "../Desktop"
screenshots_folder = "Screenshots"
organize_screenshots(desktop_path, screenshots_folder)
To execute the script, open a CLI terminal and run the command (ensure that Python is installed on your operating system):
python3 <your_script_file_path>
Congratulations! Your cluttered Desktop is now organized! π©π»βπ»β¨ You can find the full script in my Github repo.
Feel free to reach out if you have any questions! You can also find me on Github, LinkedIn, and Instagram.
Top comments (2)
great article!
thanks @ori75660 :)