Builds frustration when it comes to wasting time on repetitive tasks at work, saying, “There’s got to be an easier way of doing it!?
Good news: You’re not alone, there’s a better way, and that’s exactly what I’ll share with you in this guide.
Just think about automating such work and freeing yourself for more creative, valued tasks. That’s where using the Python automation scripts, comes in.
Python is one of the most popular, easy-to-learn programming languages that helps you automate day-to-day tasks with ease and saves literally hundreds of hours of your efforts!
Not only that, but with the help of such automations, even errors can be reduced and your productivity can be increased considerably. Whether you are a complete beginner or someone who has experience in coding, this guide will equip you with what you need to transform your daily routine. Ready for Python to make your work life easier and efficient? Ready to get started.
What are automation scripts?
Automation scripts are programs that perform repetitive tasks on your computer without needing your intervention each time. Think of them as little digital assistants designed to handle specific, routine jobs that you would otherwise do manually.
It’s a simple concept, but the payoff can be absolutely huge.
For example
Let’s say you have a folder full of text files , and you need to rename all of them with a .bak
extension so that you can create backup copies. It’s a great habit to backup important data, but doing this manually would be tedious and time-consuming, especially if you had hundreds of files.
But with a Python automation script, you can instruct your computer to handle this task quickly and efficiently.
Don’t worry about the code too much for now, but here’s a simple script that does exactly that:
import os
for filename in os.listdir('.'):
if filename.endswith('.txt'):
os.rename(filename, filename + '.bak')
So what’s happening here?
Basically, this script tells your computer to:
- Look at each file in the current directory (that’s what the dot means)
- Check if each file ends with
.txt
- If it does, rename it by adding
.bak
to the end
You don’t need to understand each line of this script to use it. Just know that with Python, and a little bit of learning, you can turn repetitive tasks like this one into a thing of the past.
There are even other tools out there that we can use alongside this such as GUI tools (more on these later) that can even simplify the code creation process.
The benefits of using Python automation
You might be thinking, “ Ok this seems like a cool feature, but it’s probably not worth my time to spend learning about “…
Well, you would be wrong. Dead wrong. In fact, this slight detour to pick up this skill could save you literally hundreds of hours per year.
Which brings me to benefit one on this list.
#1. Automations save your time and money
One of the main benefits of automation is that it saves time. Simply because, instead of performing the same tasks over and over again, you write a script once, and it does the work for you.
You can then focus on more complex and creative tasks.
For example
I used to receive daily sales reports via email and needed to copy the data into a spreadsheet.
- This task took about 15 minutes each day, which doesn’t seem like much
- However, over a month, this added up to roughly 7.5 hours of dull, repetitive work
- Over a year though that’s 94 hours, or around 2 ½ weeks!
But with a Python automation script, I could extract the data from these emails and automatically update the spreadsheet. Just a few clicks and I was done.
Over a year, this saved me around 90 hours — a significant time saving that I could use for more important tasks or to learn new skills, like more advanced coding.
Mind blown?
Just think of the impact this could have:
- If you work for yourself, how much time and money could you be saving so that you’re working on other important tasks?
- If you work for a company, how much easier would your day job be if you were doing this?
- Heck, what would be the impact if you did this for multiple repetitive tasks…
#2. Automations reduce errors
Mistakes happen, and even the most meticulous of us can mess up when performing repetitive tasks.
However, Python automation removes the possibility of human error, ensuring that the task is performed accurately every time. The machine always does the same thing so zero mistakes and typos.
#3. Automation enhances your productivity
With the mundane tasks taken care of, you have more energy for tasks that truly need your attention and skills. This leads to better productivity and efficiency.
#4. Python automations are fairly easy to learn
Python’s straightforward syntax is easy to pick up even for beginners. This makes it a popular choice for non-programmers who are looking to dip their toes into the world of coding.
For example
Let’s look at the example script from earlier:
import os
for filename in os.listdir('.'):
if filename.endswith('.txt'):
os.rename(filename, filename + '.bak')
Notice how the code is kind of similar to normal language? You can probably guess what’s happening on each line, but let’s break it down.
import os
is kind of like saying “I need the operating system’s help for a task”for filename in os.listdir('.')
is basically saying “for each file name in the current directory”if filename.endswith('.txt')
means “if the file name ends with ‘.txt'”os.rename(filename, filename + '.bak')
translates to “rename the file by adding ‘.bak’ to the end”
Or simply put: Help me computer and do this task. Look at this directory. If the file ends with .txt
, change it to .bak
.
Better still, Python is also fairly easy to use, as well as understand.
#5. You don’t always have to start from scratch
Python has an extensive range of ‘libraries’, but what does that mean?
Well, in non-tech talk, these are basically databases of pre-written pieces of code that you can use to perform common tasks.
This means you often won’t have to start from scratch when automating a task. If there’s something you want to do, there’s probably a Python library that can help you do it.
Give them a quick search and then test it out. Worst case scenario, you’re half way to figuring out your task automation.
#6. These automations work almost anywhere
Python works on all major operating systems like Windows, macOS, and Linux.
So, a Python automation script written on a Windows system will also work just as well on a Mac or Linux system with only a few modifications.
I’ll even show you how to use it on all systems later on.
#7. You can always find help
Python has a large and active community of developers. This means that if you ever run into problems or need to learn something new, there’s a good chance that someone, somewhere, has already found a solution and shared it online.
#8. Python is used everywhere
Python’s immense popularity in the programming world makes it an ideal choice for automation tasks, especially in collaborative or long-term projects.
This is because when you write automation scripts in Python, you’re using a language that countless other developers are familiar with. This becomes crucial when your scripts need to be maintained or modified by others in the future.
#9. Python is a great entry point into a coding career
Remember how I said we recommend Python to beginners? This is because it’s used in so many industries, such as Machine Learning, AI, Data Science, and more.
Examples of Python automation scripts in action
If you’re still not sure if this could help you, let’s look at a few more examples of potential python automations in real-life.
Maybe you’ll have an aha moment and suddenly realize you could streamline a lot of your own tasks.
Example 1: Reading and writing files
If your job involves handling large amounts of data, such as compiling reports or managing lists, automating file reading and writing can save you a lot of time.
For example
A marketing coordinator might need to compile weekly performance reports from multiple CSV files. Automating this task can save them several hours each week, reducing manual errors and ensuring timely updates.
How it works:
# read_write_files.py
with open('input_file.txt', 'r') as file:
data = file.read()
with open('output_file.txt', 'w') as file:
file.write(data)
This script reads data from input_file.txt and writes it to output_file.txt. You would need to customize the script with your actual file names and paths, but you get the idea.
Example 2: Sending automated emails
If your job involves sending regular updates or reports via email, automating this process can save you time.
For example
An office manager might need to send daily updates to their team but doesn’t have any kind of automated email software that works internally to help with this.
And so by automating this task, it ensures timely delivery and frees up your time for other tasks.
How it works:
# send_email.py
import smtplib
from email.message import EmailMessage
email = EmailMessage()
email['from'] = 'Your Name'
email['to'] = 'example@example.com'
email['subject'] = 'Daily Update'
email.set_content('This is an automated email with the daily update.')
with smtplib.SMTP(host='smtp.gmail.com', port=587) as smtp:
smtp.ehlo()
smtp.starttls()
smtp.login('your_email@gmail.com', 'your_password')
smtp.send_message(email)
print('Email sent successfully')
You would need to customize the email addresses, subject, and content for your specific needs, but again, you can see how simple this could be.
Heck, you could even write a 2nd script to pull all the information that you want to put into the email, saving you additional time!
Example 3: Scraping web data
If your job involves gathering data from the web, such as monitoring competitor prices or tracking news articles, web scraping can save you a significant amount of time.
For example
A PR manager might need to keep track of the latest news about their company.
How it works:
# web_scraping.py
import requests
from bs4 import BeautifulSoup
url = 'https://www.example.com'
response = requests.get(url)
soup = BeautifulSoup(response.text, 'html.parser')
for headline in soup.find_all('h2'):
print(headline.text)
This script fetches the HTML content from a website and prints out all the headlines. You would need to customize the URL and the specific tags you want to scrape.
You could even set it up to open up specific search terms such as your brand name + news + x time frame. Just in case anything happens.
(PR tools that do this are incredibly expensive. You could even set up the automation to run every 5 minutes and only tell you if something changed since the initial run when you start the day).
Example 4: Tracking keyword positions
Speaking of saving money on tools. If your job involves SEO, tracking your company’s position in search engine results for specific keywords can be time-consuming and costly.
By automating this process, you can save on specific tools and provide timely updates.
For example
An SEO specialist might need to monitor keyword rankings daily.
How it works:
# keyword_tracking.py
import requests
from bs4 import BeautifulSoup
keywords = ['your keyword 1', 'your keyword 2']
search_engine_url = 'https://www.google.com/search?q='
for keyword in keywords:
response = requests.get(search_engine_url + keyword)
soup = BeautifulSoup(response.text, 'html.parser')
result = soup.find('h3')
print(f'Keyword: {keyword}, Top result: {result.text}')
This script searches for specific keywords on Google and prints the top result.
Again, you would need to customize the keywords and possibly the parsing logic based on the HTML structure so that it’s looking for your specific keywords, but can you see how much time this would save?
You could even adjust it to only search for those keywords in relation to your rankings, and then have it fill out a CSV file (spreadsheet) so that you can monitor each day over time, completely for free.
How to get started with basic automations in Python
Before you create any automation, it’s a good idea to learn the basics of Python syntax, such as loops, conditional statements, and how to use libraries.
I cover all of this in my Blog , but you can also check out the This Blog below
Don’t feel like you need to know everything though. Get the basics then learn more as you build and figure out what went wrong.
Once you’ve done that, the process is just 4 simple steps.
- Install Python: Ensure Python is installed on your computer. You can download it from the official Python website. You only need to do this once
- Install an ‘Integrated Development Environment’ (IDE) : An IDE, such as VS Code or PyCharm, provides tools and functionalities that make coding easier. They are free tools where you write your code and then help you check it for any issues as you write. Likewise, you only need to do this once
- Write your automation
- And then run it and see how it works
Obviously, the writing of the code section is the most involved part. However, we can make this simpler by using a GUI.
What is a GUI?
A GUI (Graphical User Interface) tool like PyAutoGUI makes creating Python automation scripts even easier. Basically, it can record the actions you do on the screen with your mouse and keyboard, and then write code to mimic those actions.
For example
You perform a task such as opening a web browser and searching for your company’s latest news. The GUI tool watches, writes the code to copy what you just did, and then redoes that task when you run the script in the future.
- User opens Google Chrome
- User clicks on the search bar
- Enters search term for company name + news
- Changes time frame to past hour
- If there is a mention, send email alerts to users’ mobile device. If not, repeat again in an hour
Easy right? Using a GUI tool simplifies the automation process, especially for tasks that involve multiple mouse clicks and keystrokes. This then means that you don’t need to be an expert in Python to create useful automation scripts.
Even better still, recording your actions is faster than writing code manually, and the tool captures exact mouse movements and keystrokes, reducing the chance of errors.
So let’s walk through how to do this.
How to use a GUI tool to automate a task with PyAutoGUI
It’s actually very simple.
Step 1: Install PyAutoGUI and PyGetWindow
First, you need to install PyAutoGUI and PyGetWindow. Open your command line or terminal and run:
pip install pyautogui pygetwindow
Step 2: Record the task
We’ll use PyAutoGUI along with a simple script to record your actions. This will involve creating a script that captures mouse and keyboard events.
Step 3: Create a recording script
Create a new Python file, for example, record_actions.py
, and write the following script to capture your actions:
import pyautogui
import pygetwindow as gw
import time
# Function to record actions
def record_actions(duration=30):
actions = []
start_time = time.time()
print("Recording...")
while time.time() - start_time < duration:
x, y = pyautogui.position()
actions.append((time.time() - start_time, x, y))
time.sleep(0.1)
return actions
# Save recorded actions to a file
def save_actions(filename, actions):
with open(filename, 'w') as f:
for action in actions:
f.write(f"{action[0]},{action[1]},{action[2]}\n")
# Main function
if __name__ == "__main__":
duration = int(input("Enter recording duration (seconds): "))
actions = record_actions(duration)
save_actions("recorded_actions.txt", actions)
print("Recording saved to recorded_actions.txt")
Step 4: Run the recording script
Run the script from your IDE or command line. This will start recording your mouse movements and clicks for the specified duration.
python record_actions.py
This script records the mouse position every 0.1 seconds for a specified duration. It also saves the recorded actions (time, x, y coordinates) to a file.
Step 5: Replay the recorded actions
Create another Python file, for example, replay_actions.py
, and write the following script to replay the recorded actions:
import pyautogui
import time
# Function to load recorded actions from a file
def load_actions(filename):
actions = []
with open(filename, 'r') as f:
for line in f:
t, x, y = line.strip().split(',')
actions.append((float(t), int(x), int(y)))
return actions
# Function to replay actions
def replay_actions(actions):
start_time = time.time()
for action in actions:
while time.time() - start_time < action[0]:
time.sleep(0.01)
pyautogui.moveTo(action[1], action[2])
# Main function
if __name__ == "__main__":
actions = load_actions("recorded_actions.txt")
print("Replaying actions...")
replay_actions(actions)
print("Actions replayed successfully")
Step 6: Run the replay script
Run the replay script to see the recorded actions being replayed on your screen:
python replay_actions.py
This script loads the recorded actions from the file, and then it replays the actions by moving the mouse to the recorded positions at the recorded times.
Easy!
And just like that, our code is now done.
Now obviously, this is an incredibly basic option. We could do far more complex automations with a little time and patience.
For example
Let’s say you have a monthly report for web traffic, and you use 3 sources for this:
- Google Search Console
- Google Analytics GA4, and
- Ahrefs SEO tools
We could get the tool to go to each of these tools, monitor the settings we use for each section of our report spreadsheet, see where we pull the data from, and fill out as many rows as needed — saving hours and completing in just a few minutes — all while we wait.
We would have to do a few security things to make sure passwords could be accessed etc, but the possibilities are endless.
Troubleshooting common issues in Python automation
Not everything will run smoothly the first time, and this is totally fine.
Remember that encountering errors is a natural part of programming, and troubleshooting errors in a calm, measured manner is key. Don’t be discouraged by occasional roadblocks either; errors are how you know you’re doing real programming!
Only by making mistakes can you learn lessons. With that in mind though, here are 4 common issues that often come up, and how to solve them.
Common Issue #1: Your automation script works perfectly on one computer but fails on another
There can be a few reasons for this.
First of all, ensure the script file itself is actually on the machine you want to run it on. A script written on your home PC isn’t automatically accessible on your work computer. You need to copy the script file to each computer where you want to use it.
If you’ve done that and it still doesn’t work, then the issue is usually:
- Because of differences in the operating system i.e it was written on a PC and your code references windows specific commands, but you’re trying to use it on a Mac
- Or you’ve tweaked the code for the different machines, but the versions of Python and libraries installed on different machines are not the same
For example, a library that works on your Windows machine might not work the same way on a Mac.
So what’s the solution?
We can get around all of this by creating a virtual environment to run your scripts on. A virtual environment is an isolated setup that includes the specific versions of Python and libraries your script needs.
How to create a Virtual Environment:
First off, make sure to install virtualenv
on your machine.
pip install virtualenv
Then, navigate to your project directory and create a virtual environment:
virtualenv myenv
Next, you need to activate the virtual environment, for your particular machine.
For Windows:
myenv\Scripts\activate
For MacOS or Linux:
source myenv/bin/activate
Finally, you just need to install the required libraries in the virtual environment:
pip install requests
Now your script will run on any machine, and you can access it from the same virtual environment each time.
Common Issue #2: Script runs but doesn’t complete the task, and you don’t see any error messages
This typically indicates that exceptions (errors) are not being properly handled in your script, causing it to stop running instead of looking for a solution.
To address this, you can use 2 techniques:
try-except
blocks to catch and handle errors, and- Implement
logging
to see where the issue occurred.
import logging
logging.basicConfig(filename='script.log', level=logging.INFO)
try:
# Code that might raise an exception
download_file(url)
except NetworkError as e:
logging.error(f"Network error: {e}")
retry_download(url)
except Exception as e:
logging.error(f"An unexpected error occurred: {e}")
print("An error occurred: ", e)
For example So what’s happening here?
By implementing logging, you can check script.log
to see the last action the script performed and identify where the issue occurred.
Logging essentially allows the code to tell you what point it is at during the process, helping you pinpoint the exact problem and making debugging much easier.
That’s not the only thing happening though.
The try block contains the code that might cause an error, while the except blocks catch and handle specific errors.
So in this example, if a NetworkError
occurs, it logs the error and retries the download. If any other unexpected error occurs, it logs the error and prints a message to the console.
This approach ensures that the script can manage errors without abruptly stopping and provides valuable information for debugging.
Common Issue #3: Including sensitive information by accident
It’s easy to include sensitive data directly in your script for convenience, but this practice is risky for security reasons.
So, instead of hardcoding sensitive information, use environment variables or secure files that your script can read when necessary. This practice protects your sensitive information from being exposed in your codebase.
import os
email_password = os.getenv('EMAIL_PASSWORD')
This way, your sensitive information is stored securely outside of your codebase, reducing the risk of it being exposed in version control systems or shared inadvertently.
Common Issue #4: Script takes longer to complete the task than it would take to do it manually
This may happen because your script is not optimized or could be making unnecessary calls to an API or database.
The best thing to do here is to review your script to ensure it’s efficient and not repeating tasks unnecessarily, or even adding in unnecessary timing issues.
For example
If your script processes files, make sure it only processes each file once. The reason for this is that although you might want your pc to do 10 tasks, it’s often faster to do 1 task 10 times, vs doing 10 tasks all at once.
Same output at the end, but dramatically different time to get it completed. No joke, this can significantly improve the efficiency of your script.
processed_files = set()
for filename in os.listdir(directory):
if filename not in processed_files:
process_file(filename)
processed_files.add(filename)
You could also further optimize your code by reducing redundant operations and using efficient algorithms.
Now it’s your turn to start automating
Hopefully this guide has opened your mind to the possibilities of Python automation scripts, and how you can use them to simplify your own life.
Python automation can be an incredible tool, enhancing your productivity by handling repetitive tasks and reducing the chance of errors.
Even if you’re a complete beginner, Python’s simple syntax and readability make learning it a manageable task. Before you know it, you’ll have your own set of digital assistants making your life easier!
Automation is not just for coders. With the right guidance and tools, anyone can start automating their tasks to save time and increase efficiency. Imagine all the time you spend on repetitive tasks each day, and think about how much more productive you could be if you could automate even a portion of those tasks.
By following the steps and tips outlined in this guide, you should be well on your way to becoming proficient in Python automation.
I think you might be surprised just how much easier you can make your job if you work smarter, not harder. You can do this. No coding experience required.
A Note From the Author
Thank you so much for taking the time to read the story. If you found my article helpful and interesting, please share your thoughts in the comment section, and don’t forget to share and clap
Let’s Get in Touch!
- GitHub: @gajanan0707
- LinkedIn: Gajanan Rajput
- Website: mrcoder701.com
- YouTube: mrcoder701
- Instagram: mr_coder_701
- Medium: Gajanan Rajput