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

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

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

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

```python
import pandas as pd

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

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

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

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

```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. ファイルのリネーム**

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

```python
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の画像処理ライブラリで、画像処理を簡素化します。このスクリプトは、一連の画像を指定された解像度やアスペクト比にリサイズできます。

```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ファイルを生成できます。以下は基本的なサンプルです。

```python
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`ライブラリが役立ちます。このスクリプトは、プログラムで電子メールを送信するのに役立ちます。

```python
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. データバックアップスクリプト**

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

```python
import shutil

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

shutil.copytree(source_folder, backup_folder)
```

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

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

```python
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サーバーを作成します。

```python
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データベースをバックアップおよび復元するサンプルスクリプトです。

```python
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_file`と`backup_db_file`変数を調整してSQLiteのソースファイルとバックアップデータベースファイルのパスを指定できます。

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