0% found this document useful (0 votes)
7 views

Automation Scripts Part1

Uploaded by

Moise Masson
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
7 views

Automation Scripts Part1

Uploaded by

Moise Masson
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 13

1.

Batch Rename Files

import os

def batch_rename_files(directory, new_name):

for count, filename in enumerate(os.listdir(directory)):

extension = os.path.splitext(filename)[1]

new_filename = f"{new_name}_{count+1}{extension}"

old_path = os.path.join(directory, filename)

new_path = os.path.join(directory, new_filename)

os.rename(old_path, new_path)

directory = "/path/to/your/directory"

new_name = "new_filename"

batch_rename_files(directory, new_name)
2. Backup Files and Folders

import shutil

import os

from datetime import datetime

def backup_files_and_folders(source, destination):

timestamp = datetime.now().strftime("%Y%m%d%H%M%S")

backup_destination = f"{destination}_backup_{timestamp}"

shutil.copytree(source, backup_destination)

source = "/path/to/your/source"

destination = "/path/to/your/destination"

backup_files_and_folders(source, destination)
3. Move Files Based on Extension

import os

import shutil

def move_files_based_on_extension(source_directory, target_directory, extension):

if not os.path.exists(target_directory):

os.makedirs(target_directory)

for filename in os.listdir(source_directory):

if filename.endswith(extension):

shutil.move(os.path.join(source_directory, filename), target_directory)

source_directory = "/path/to/source"

target_directory = "/path/to/target"

extension = ".txt"

move_files_based_on_extension(source_directory, target_directory, extension)


4. Organize Files into Folders by Date

import os

import shutil

from datetime import datetime

def organize_files_by_date(directory):

for filename in os.listdir(directory):

file_path = os.path.join(directory, filename)

if os.path.isfile(file_path):

modification_time = os.path.getmtime(file_path)

date_folder = datetime.fromtimestamp(modification_time).strftime('%Y-%m-%d')

date_folder_path = os.path.join(directory, date_folder)

if not os.path.exists(date_folder_path):

os.makedirs(date_folder_path)

shutil.move(file_path, date_folder_path)

directory = "/path/to/your/directory"

organize_files_by_date(directory)
5. Monitor Directory Changes

import time

from watchdog.observers import Observer

from watchdog.events import FileSystemEventHandler

class MonitorHandler(FileSystemEventHandler):

def on_modified(self, event):

print(f"Modified: {event.src_path}")

def on_created(self, event):

print(f"Created: {event.src_path}")

def on_deleted(self, event):

print(f"Deleted: {event.src_path}")

directory_to_monitor = "/path/to/your/directory"

event_handler = MonitorHandler()

observer = Observer()

observer.schedule(event_handler, directory_to_monitor, recursive=True)

observer.start()

try:

while True:

time.sleep(1)

except KeyboardInterrupt:
observer.stop()

observer.join()
6. Send Automatic Emails with Attachments

import smtplib

from email.mime.multipart import MIMEMultipart

from email.mime.text import MIMEText

from email.mime.base import MIMEBase

from email import encoders

def send_email_with_attachment(smtp_server, port, sender_email, receiver_email, subject,

body, attachment_path, login, password):

msg = MIMEMultipart()

msg['From'] = sender_email

msg['To'] = receiver_email

msg['Subject'] = subject

msg.attach(MIMEText(body, 'plain'))

attachment = open(attachment_path, "rb")

part = MIMEBase('application', 'octet-stream')

part.set_payload((attachment).read())

encoders.encode_base64(part)

part.add_header('Content-Disposition', f"attachment; filename=

{os.path.basename(attachment_path)}")

msg.attach(part)
server = smtplib.SMTP(smtp_server, port)

server.starttls()

server.login(login, password)

text = msg.as_string()

server.sendmail(sender_email, receiver_email, text)

server.quit()

smtp_server = "smtp.yourserver.com"

port = 587

sender_email = "[email protected]"

receiver_email = "[email protected]"

subject = "Subject"

body = "Body of the email"

attachment_path = "/path/to/your/attachment"

login = "[email protected]"

password = "your_password"

send_email_with_attachment(smtp_server, port, sender_email, receiver_email, subject,

body, attachment_path, login, password)


7. Periodically Download Files from the Internet

import requests

import time

def download_file(url, save_path):

r = requests.get(url)

with open(save_path, 'wb') as f:

f.write(r.content)

url = "http://example.com/file.zip"

save_path = "/path/to/your/save/file.zip"

interval = 3600 # Interval in seconds (e.g., 3600 seconds = 1 hour)

while True:

download_file(url, save_path)

time.sleep(interval)
8. Convert CSV Files to Excel

import pandas as pd

def convert_csv_to_excel(csv_file, excel_file):

df = pd.read_csv(csv_file)

df.to_excel(excel_file, index=False)

csv_file = "/path/to/your/file.csv"

excel_file = "/path/to/your/file.xlsx"

convert_csv_to_excel(csv_file, excel_file)
9. Combine Multiple CSV Files into One

import pandas as pd

import os

def combine_csv_files(directory, output_file):

all_files = [os.path.join(directory, f) for f in os.listdir(directory) if

f.endswith('.csv')]

combined_df = pd.concat([pd.read_csv(f) for f in all_files])

combined_df.to_csv(output_file, index=False)

directory = "/path/to/your/csv/files"

output_file = "/path/to/your/output.csv"

combine_csv_files(directory, output_file)
10. Generate PDF Reports from Data

import pandas as pd

from fpdf import FPDF

def generate_pdf_report(data, output_pdf):

class PDF(FPDF):

def header(self):

self.set_font('Arial', 'B', 12)

self.cell(0, 10, 'PDF Report', 0, 1, 'C')

def footer(self):

self.set_y(-15)

self.set_font('Arial', 'I', 8)

self.cell(0, 10, f'Page {self.page_no()}', 0, 0, 'C')

def chapter_title(self, title):

self.set_font('Arial', 'B', 12)

self.cell(0, 10, title, 0, 1, 'L')

self.ln(10)

def chapter_body(self, body):

self.set_font('Arial', '', 12)

self.multi_cell(0, 10, body)

self.ln()
pdf = PDF()

pdf.add_page()

pdf.chapter_title('Data Report')

pdf.chapter_body(data.to_string())

pdf.output(output_pdf)

data = pd.DataFrame({

'Name': ['Alice', 'Bob', 'Charlie'],

'Age': [24, 27, 22],

'City': ['New York', 'Los Angeles', 'Chicago']

})

output_pdf = "/path/to/your/report.pdf"

generate_pdf_report(data, output_pdf)

You might also like