😎

日常のタスクを簡単に自動化するための10個のPythonスクリプト

2024/12/25に公開

Pythonは汎用プログラミング言語であり、そのシンプルさと可読性で知られています。ウェブ開発からデータ分析まで、さまざまな分野で広く使用されています。この記事では、一般的なタスクを自動化し、生活をより楽にするための10個のPythonスクリプトを探ります。

1.Pandasを使用したデータ分析

Pandasは強力なデータ分析ライブラリです。数行のコードで、CSVファイルやデータベースなど、さまざまなソースからデータを読み込み、クリーンアップし、分析できます。以下はサンプルスクリプトです。

import pandas as pd

# CSVファイルからデータを読み込む
data = pd.read_csv('data.csv')

# 基本的な分析を実行
mean = data['column_name'].mean()
print(f"平均: {mean}")

2. BeautifulSoupを使用したウェブスクレイピング

BeautifulSoupはウェブスクレイピング用のPythonライブラリです。ウェブサイトからデータを簡単に抽出できます。以下はシンプルなウェブスクレイピングスクリプトです。

import requests
from bs4 import BeautifulSoup

url = 'https://example.com'
response = requests.get(url)
soup = BeautifulSoup(response.text, 'html.parser')

# ウェブページからデータを抽出
data = soup.find('div', class_='content')
print(data.text)

3. ファイルのリネーム

特定の基準に基づいてフォルダー内の複数のファイルをリネームする必要がある場合、このスクリプトが非常に便利です。例えば、プレフィックスやサフィックスを追加したり、ファイル名のテキストを置き換えたりできます。

import os

folder_path = '/path/to/folder'
for filename in os.listdir(folder_path):
    if filename.startswith('prefix_'):
        new_filename = filename.replace('prefix_', 'new_prefix_')
        os.rename(os.path.join(folder_path, filename), os.path.join(folder_path, new_filename))

4. Pillowを使用した画像のリサイズ

PillowはPythonの画像処理ライブラリで、画像処理を簡素化します。このスクリプトは、一連の画像を指定された解像度やアスペクト比にリサイズできます。

from PIL import Image
import os

input_folder = '/path/to/images'
output_folder = '/path/to/resized_images'
desired_size = (100, 100)

for filename in os.listdir(input_folder):
    with Image.open(os.path.join(input_folder, filename)) as img:
        img.thumbnail(desired_size)
        img.save(os.path.join(output_folder, filename))

5. ReportLabを使用してPDFを作成

ReportLabはPythonを使用してPDF文書を作成するためのライブラリです。テキストやHTMLコンテンツからPDFファイルを生成できます。以下は基本的なサンプルです。

from reportlab.pdfgen import canvas

pdf_file = 'output.pdf'
text = 'こんにちは、これはサンプルPDFです。'

c = canvas.Canvas(pdf_file)
c.drawString(100, 750, text)
c.save()

6. smtplibを使用して電子メールを送信

自動的に電子メールを送信する必要がある場合、Pythonのsmtplibライブラリが役立ちます。このスクリプトは、プログラムで電子メールを送信するのに役立ちます。

import smtplib
from email.mime.text import MIMEText
from email.mime.multipart import MIMEMultipart

smtp_server = 'smtp.example.com'
sender_email = 'your_email@example.com'
receiver_email = 'recipient@example.com'
password = 'your_password'

message = MIMEMultipart()
message['From'] = sender_email
message['To'] = receiver_email
message['Subject'] = 'サンプルメールの件名'

body = 'これはサンプルメールメッセージです。'
message.attach(MIMEText(body, 'plain'))

with smtplib.SMTP(smtp_server, 587) as server:
    server.starttls()
    server.login(sender_email, password)
    server.sendmail(sender_email, receiver_email, message.as_string())

7. データバックアップスクリプト

ファイルとディレクトリを自動的にバックアップし、データの安全性を確保します。

import shutil

source_folder = '/path/to/source_folder'
backup_folder = '/path/to/backup_folder'

shutil.copytree(source_folder, backup_folder)

8. パスワードジェネレーター

強力でランダムなパスワードを生成してセキュリティを強化します。

import random
import string

def generate_password(length=12):
    characters = string.ascii_letters + string.digits + string.punctuation
    return ''.join(random.choice(characters) for _ in range(length))

password = generate_password()
print(password)

9. 簡単なWebサーバー

テストや開発目的のために基本的なHTTPサーバーを作成します。

import http.server
import socketserver

port = 8000

with socketserver.TCPServer(('', port), http.server.SimpleHTTPRequestHandler) as httpd:
    print(f"ポート {port} で提供中")
    httpd.serve_forever()

10. SQLiteを使用したデータベースのバックアップと復元

SQLiteは軽量でディスクベースのデータベースです。別のサーバーを必要とせず、独自のSQLバリアントを使用します。多くのアプリケーションの内部データストレージに使用され、PostgreSQLやOracleなどの大規模なデータベースを使用する前のプロトタイピングにも利用できます。

以下はPythonを使用してSQLiteデータベースをバックアップおよび復元するサンプルスクリプトです。

import sqlite3
import shutil

# データベースファイルのパス
source_db_file = 'source.db'
backup_db_file = 'backup.db'

# SQLiteデータベースのバックアップを作成する関数
def backup_database():
    try:
        shutil.copy2(source_db_file, backup_db_file)
        print("バックアップ成功。")
    except Exception as e:
        print(f"バックアップ失敗: {str(e)}")

# バックアップからSQLiteデータベースを復元する関数
def restore_database():
    try:
        shutil.copy2(backup_db_file, source_db_file)
        print("復元成功。")
    except Exception as e:
        print(f"復元失敗: {str(e)}")

# 使用方法
while True:
    print("オプション:")
    print("1. データベースをバックアップ")
    print("2. データベースを復元")
    print("3. 終了")
    choice = input("選択肢を入力してください (1/2/3): ")

    if choice == '1':
        backup_database()
    elif choice == '2':
        restore_database()
    elif choice == '3':
        break
    else:
        print("無効な選択です。1、2、または3を入力してください。")

このコードでは:

  1. backup_database()関数はSQLiteデータベースのソースファイルをコピーし、バックアップファイルとして保存します。この関数を実行するとデータベースのバックアップが作成されます。
  2. restore_database()関数はバックアップファイルをソースファイルにコピーし、バックアップ作成時の状態にデータベースを復元します。
  3. ユーザーはデータベースをバックアップするか、復元するか、プログラムを終了するかを選択できます。
  4. source_db_filebackup_db_file変数を調整してSQLiteのソースファイルとバックアップデータベースファイルのパスを指定できます。

以上が、日常のタスクを自動化するのに役立つ10個の実用的なPythonスクリプトです。

Discussion