Skip to content
On this page

Python snippets

Outlook email

python
import win32com.client as win32

def send_email(subject: str = 'Automated Email', body: str, recipients: str) -> None:
    outlook = win32.Dispatch('outlook.application')
    mail = outlook.CreateItem(0)
    mail.To = recipients
    mail.Subject = subject
    mail.Body = body
    mail.Display()  # Show the email
    # mail.Send()  # Send the email

Python Excel

python
import pandas

def df_from_excel(file_path: str = '.', sheet_name: str = 'Sheet1') -> pandas.DataFrame:
    return pandas.read_excel(file_path, sheet_name=sheet_name)

def df_to_excel(df: pandas.DataFrame, file_path: str = '.', sheet_name: str = 'Sheet1') -> None:
    df.to_excel(file_path, sheet_name=sheet_name, index=False)

Dictionary to PDF

python
import fpdf

def dict_to_pdf(data: dict, file_path: str = '.', file_name: str = 'export.pdf') -> None:
    pdf = fpdf.FPDF()
    pdf.add_page()
    pdf.set_font('Arial', 'B', 16)
    for key, value in data.items():
        pdf.cell(200, 10, txt=f'{key}: {value}', ln=1, align='L')
    pdf.output(f'{file_path}/{file_name}')

Argparse input/output file

python
import argparse

def main():
    parser = argparse.ArgumentParser(description='Description of your program')
    parser.add_argument('-i', '--input', help='Specify input file', required=False, default='input.txt', type=str)
    parser.add_argument('-o', '--output', help='Specify output file', required=False, default='output.txt', type=str)
    args = parser.parse_args()  # Parse arguments into usable variables
    print(args.input)  # Print the input file
    print(args.output)  # Print the output file

Python logging

python
import logging

logging.basicConfig(filename='log.txt', level=logging.DEBUG, format='%(asctime)s - %(levelname)s - %(message)s')
logging.debug('Start of program')
logging.info('Doing something')
logging.warning('Dying now')

Python CSV

python
import csv

def read_csv(file_path: str = '.', file_name: str = 'input.csv') -> list:
    with open(f'{file_path}/{file_name}', 'r') as file:
        reader = csv.reader(file)
        return list(reader)

def write_csv(data: list, file_path: str = '.', file_name: str = 'output.csv') -> None:
    with open(f'{file_path}/{file_name}', 'w') as file:
        writer = csv.writer(file)
        writer.writerows(data)

Python JSON

python
import json

def read_json(file_path: str = '.', file_name: str = 'input.json') -> dict:
    return json.load(open(f'{file_path}/{file_name}', 'r'))

def write_json(data: dict, file_path: str = '.', file_name: str = 'output.json') -> None:
    json.dump(data, open(f'{file_path}/{file_name}', 'w'))
    return None

Python XML

python
import xml.etree.ElementTree as ET

def read_xml(file_path: str = '.', file_name: str = 'input.xml') -> dict:
    tree = ET.parse(f'{file_path}/{file_name}')
    root = tree.getroot()
    return root

def write_xml(data: dict, file_path: str = '.', file_name: str = 'output.xml') -> None:
    tree = ET.ElementTree(data)
    tree.write(f'{file_path}/{file_name}')