PYTHON

Python Script: Syntax, Execution, and Practical Examples

A Python script is a file containing Python code designed to be executed as a standalone program or reused across multiple projects. These scripts typically end with the .py extension and can perform a wide range of tasks, from simple data manipulation to automating complex workflows.

Understanding how to create, run, and organize Python scripts is essential for anyone starting out with Python programming or aiming to build scalable software solutions.


What Is a Python Script?

A Python script is essentially a plain text file containing a sequence of Python instructions. These instructions can include variable declarations, control flow statements, functions, class definitions, module imports, and executable statements. A script is distinguished from a Python module primarily by its intent—it’s written to be executed rather than imported.

A typical Python script might perform calculations, scrape websites, process files, interact with APIs, or manage databases. Scripts can be run once or scheduled to run periodically for automation purposes.


Python Script vs Python Module

While the terms "script" and "module" are often used interchangeably, they have different purposes:

  • A script Python is intended for execution. It's the entry point of a task or program.
  • A module is meant to be imported and reused by other scripts or modules.

For example:

# script.py
print("This is a script.")

# module.py
def greet(name):
    return f"Hello, {name}!"

You might run script.py directly but import module.py into another file.


How to Create a Python Script

Creating a Python script is simple. You only need a text editor (like VS Code, Sublime Text, or even Notepad) and a working Python installation.

Steps:

  1. Open your text editor.
  2. Type Python code (e.g., print("Hello, world!")).
  3. Save the file with a .py extension.

# hello.py
print("Hello, world!")

That’s it—you’ve created a Python script.


How to Run a Python Script

There are several ways to execute a Python script depending on your setup and environment.

1. Using the Command Line

This is the most common method.

python hello.py

If you’re using Python 3 specifically:

python3 hello.py

Make sure Python is added to your system’s PATH variable to run it from any location.

2. Using an IDE

Most modern IDEs and code editors support running scripts with a single click. In tools like Visual Studio Code, you can run the script directly from the GUI.

3. Running Scripts Interactively

In Jupyter Notebooks or IPython, you can run entire scripts or parts of scripts within a notebook cell.

%run hello.py

This approach is handy for data science workflows.

4. Double-click Execution (Windows only)

If Python is properly configured on your system, double-clicking a .py file will execute it in the terminal. However, the window may close instantly unless you add a pause like:

input("Press Enter to exit...")

How to Execute a Python Script Programmatically

Sometimes, you may need to run a script from another Python script. You can use:

import statement

If the script is organized as a module, you can import and reuse its functions:

import my_script
my_script.main()

subprocess module

You can also use the subprocess module to launch a script as a separate process:

import subprocess
subprocess.run(["python", "hello.py"])

This approach is useful when you want isolation between processes.


Shebang Line for Unix/Linux

On Unix-like systems (Linux/macOS), you can add a shebang to the top of your Python script to make it executable:

#!/usr/bin/env python3
print("Running as executable")

Then make it executable:

chmod +x script.py
./script.py

This allows the script to be run directly without calling Python explicitly.


Python Script Example

Here’s a basic script that reads a file and counts the words:

# word_count.py

def count_words(filepath):
    with open(filepath, "r") as file:
        text = file.read()
        words = text.split()
        return len(words)

if __name__ == "__main__":
    import sys
    if len(sys.argv) > 1:
        path = sys.argv[1]
        print("Word count:", count_words(path))
    else:
        print("Please provide a file path.")

Run it from the terminal:

python word_count.py myfile.txt

Organizing Python Scripts in Projects

As projects grow, organizing scripts becomes crucial. Common best practices include:

  • Keeping scripts in a scripts/ folder.
  • Using __main__.py to designate entry points.
  • Writing reusable logic in modules and minimal code in the actual script.
  • Using a virtual environment for dependencies.

Example project layout:

my_project/
├── scripts/
│   └── main.py
├── utils/
│   └── helpers.py
├── data/
├── README.md
└── requirements.txt

This structure keeps logic separated, helping you scale and maintain the codebase.


How to Start a Python Script Automatically

There are times when you want your Python script to run on system boot or at regular intervals.

On Windows:

  • Use Task Scheduler to run a .py file at login or on a schedule.

On macOS/Linux:

  • Use cron to schedule recurring script execution.
  • Use launchd or systemd for startup scripts.

Example cron job:

0 8 * * * /usr/bin/python3 /path/to/script.py

This runs the script every day at 8 a.m.


Automating Workflows with Python Scripts

Python scripts shine when used for automation. Popular examples include:

  • Automating backups
  • Scraping websites
  • Sending email notifications
  • Parsing log files
  • Generating reports

Example: Sending Daily Email Reports

import smtplib
from email.mime.text import MIMEText

message = MIMEText("Daily report content here")
message["Subject"] = "Daily Report"
message["From"] = "me@example.com"
message["To"] = "you@example.com"

with smtplib.SMTP("smtp.example.com") as server:
    server.login("me@example.com", "password")
    server.send_message(message)

You could schedule this script to run every day using cron or Task Scheduler.


Using Virtual Environments in Scripts

When working on multiple Python projects, it’s a best practice to use a virtual environment. This keeps dependencies for each script isolated.

Creating a virtual environment:

python -m venv venv
source venv/bin/activate  # On Unix
venv\Scripts\activate     # On Windows

Install dependencies locally:

pip install requests pandas flask

Then write your script using only the packages installed in the virtual environment.


Advanced Scripting Techniques

Once you’re comfortable with basic scripting, you can take it further with:

  • Argument parsing using argparse
  • Logging with logging module
  • Packaging your script with pyinstaller
  • Deploying scripts as REST APIs using Flask or FastAPI

These techniques turn simple scripts into production-ready tools.


Summary

A Python script is a powerful way to automate tasks, build tools, and prototype applications. By understanding how to create a Python script, how to run a Python script in various environments, and how to structure your projects, you can write efficient, reusable, and maintainable code.

From basic print statements to complex file parsing and automation, Python scripting opens doors to endless possibilities in web development, data science, system administration, and beyond. If you're just beginning your journey with Python, writing and executing your first script is the best way to start learning.

As you advance, you'll find yourself writing more modular code, using tools like virtual environments, and integrating your scripts into larger systems. The Python ecosystem is rich with resources and tools to support every kind of script, from quick hacks to fully-fledged applications.

Learn to Code in Python for Free
Start learning now
button icon
To advance beyond this tutorial and learn Python by doing, try the interactive experience of Mimo. Whether you're starting from scratch or brushing up your coding skills, Mimo helps you take your coding journey above and beyond.

Sign up or download Mimo from the App Store or Google Play to enhance your programming skills and prepare for a career in tech.

You can code, too.

© 2025 Mimo GmbH

Reach your coding goals faster