Photo by Author
You automate. I automate. We all automate. We automate our finances, our to-do lists, and our social lives. Why then, is there still so much resistance to automating our professional lives? I’ve been a software engineer for over a decade, and I’ve been an automation advocate for just as long. I’ve seen the benefits of automation firsthand and have helped companies adopt it. In this blog post, I’ll share 10 small tasks that you can automate with Python.
Introduction
Whether you are writing software, writing business logic, or simply taking notes, automation is your friend. The software world has been fighting an “artificial intelligence arms race” with our competitors for a long time now. Even Google is working on autonomous robots. How can we, as developers, compete? By focusing on our own strengths. We can do this by applying the same techniques that we use for product development to software development. We can apply advanced techniques to our problem-solving and then automate collecting information to be used in those solutions. I personally find that the greater the depth of the problem I solve, the easier it is for me to become a master at the solution and to then specialize in the parts of the problem I find most interesting.
5 Tasks to Automate with Python
This is by no means a comprehensive list, nor will it provide the same level of detail for each task. But it should give you a solid starting point. If you’re new to automation, I recommend checking out the Robot Academy archive to learn more.
#1. Reading (Turn any file into an audiobook)
You can turn any file on your Mac into an audiobook with the script below, and listen to it in the background.
First, install the following dependency.
pip install mac-say
Then create a python file you will be using to execute this task.
import sys
import mac_say
mac_say.say(["-f", sys.argv[1], "-v", "Alex"])
Then in the command line just point at a file of your choice, and enjoy
python audiobook.py fileofyourchoice.txt
#2. Quick Weather Reports
Checking the weather is usually a quick thing, but there can be a bit of satisfaction, by doing it with a click of a button.
This as well only requires a single dependency.
pip install requests
Once installed just create a file to run with the script below.
import sys
import requests
resp = requests.get(f'https://wttr.in/{sys.argv[1].replace(" ", "+")}')
print(resp.text)
After that, you are ready to run or schedule each day the following.
python weather.py "Your City"
#3. Converting Currencies
This one is a bit easier all we need to do is to install the library as below.
pip install --user currencyconverter
This installation should put currency_converter
in our $PATH
so to execute a conversion one just needs to write the following as shown in the example execution.
currency_converter 1 USD --to EUR
#4. Automatically Sorting Your Downloads Folder
In this example, we will just listen for PDFs, images, audio, and video, but this can be expanded quite a bit and should be enough to get you started. I went a little overboard with this one.
import sys
import os
import time
from watchdog.observers import Observer
from watchdog.events import FileSystemEventHandler
folder_to_monitor = sys.argv[1]
file_folder_mapping = {
".png": "images",
".jpg": "images",
".jpeg": "images",
".gif": "images",
".pdf": "pdfs",
".mp4": "videos",
".mp3": "audio",
".zip": "bundles",
}
class DownloadedFileHandler(FileSystemEventHandler):
def on_created(self, event):
if any(event.src_path.endswith(x) for x in file_folder_mapping):
parent = os.path.join(
os.path.dirname(os.path.abspath(event.src_path)),
file_folder_mapping.get(f".{event.src_path.split('.')[-1]}"),
)
if not os.path.exists(parent):
os.makedirs(parent)
os.rename(
event.src_path, os.path.join(parent, os.path.basename(event.src_path))
)
event_handler = DownloadedFileHandler()
observer = Observer()
observer.schedule(event_handler, folder_to_monitor, recursive=True)
print("Monitoring started")
observer.start()
try:
while True:
time.sleep(10)
except KeyboardInterrupt:
observer.stop()
observer.join()
Once you have the file created for this, all you need to do is to run it pointing at your downloads directory to start monitoring it.
python downloads-watchdog.py "/your/downloads/folder"
#5. The Morning Setup Script
In the morning usually, you want to do very little until the caffeine hits. This script will get your morning started earlier by opening all of the browser tabs you usually need to open each morning. Save a script file with URLs of your choice as shown in the example below.
python -m webbrowser -t "https://www.google.com"
python -m webbrowser -t "https://www.dylanroy.com"
python -m webbrowser -t "https://www.usesql.com"
Conclusion
Python is a powerful tool, but the more you learn and practice it, the more efficient and productive you’ll become. It has been my pleasure to share some silly or fun automation tasks with you, and I hope that you found them useful. If you have any questions, feel free to ask.
Resources
- Mac Text-To-Speech Python Library
- Python Weather Library
- Python Currency Converter
- Python Watchdog
- Python Webbrowser
Dylan Roy currently works with Dow Jones to deliver innovate products using cutting edge technologies, and entrepreneurial drive. Often leverages big data and cloud technologies to continuously deliver value for customers. Attended the College of Engineering at Iowa State University for his B.S. in Computer Engineering. Subscribe here for even more (dylanroy.com)
Original. Reposted with permission.