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

Automation Scripts Part1

Uploaded by

Moise Masson
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
39 views

Automation Scripts Part1

Uploaded by

Moise Masson
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
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