この記事では、Pythonを使ってデータベースとテキストファイルのインタラクションを行う方法について詳しく解説します。具体的なコード例、その解説、そして応用例も含めて説明していきます。
目次
データベースとテキストファイルの基本的なインタラクション
Pythonでデータベースとテキストファイルを扱うには、標準ライブラリである`sqlite3`と`os`、`io`が一般的です。これらを用いることで、データの読み書きや検索などが可能になります。
データベースへの接続
SQLiteデータベースに接続する基本的なコードは以下の通りです。
import sqlite3
# データベースに接続
conn = sqlite3.connect('example.db')
テキストファイルの読み込み
テキストファイルを読み込む基本的なコードは以下の通りです。
with open('example.txt', 'r') as file:
data = file.read()
データベースとテキストファイルのインタラクション例
テキストファイルからデータベースにデータを挿入する
このセクションでは、テキストファイルに保存されたデータをデータベースに挿入する一例を紹介します。
import sqlite3
# データベースに接続
conn = sqlite3.connect('example.db')
cursor = conn.cursor()
# テーブル作成(既に存在する場合はスキップ)
cursor.execute('''
CREATE TABLE IF NOT EXISTS users (id INTEGER PRIMARY KEY, name TEXT, age INTEGER)
''')
# テキストファイルからデータを読み込む
with open('users.txt', 'r') as file:
lines = file.readlines()
for line in lines:
name, age = line.strip().split(',')
cursor.execute("INSERT INTO users (name, age) VALUES (?, ?)", (name, age))
# 変更をコミット
conn.commit()
# 接続を閉じる
conn.close()
データベースからテキストファイルにデータを書き出す
データベースから取得したデータをテキストファイルに書き出す例です。
import sqlite3
# データベースに接続
conn = sqlite3.connect('example.db')
cursor = conn.cursor()
# データを取得
cursor.execute("SELECT * FROM users")
rows = cursor.fetchall()
# テキストファイルに書き出す
with open('output.txt', 'w') as file:
for row in rows:
file.write(f"{row[1]},{row[2]}\n")
# 接続を閉じる
conn.close()
応用例
CSV形式でのデータのやりとり
Pythonの`csv`モジュールを用いて、CSV形式でデータベースとテキストファイルのインタラクションを行います。
import csv
import sqlite3
# CSVからデータを読み取り、データベースに保存
with open('users.csv', 'r') as csv_file:
csv_reader = csv.reader(csv_file)
for row in csv_reader:
cursor.execute("INSERT INTO users (name, age) VALUES (?, ?)", (row[0], row[1]))
conn.commit()
データベースのバックアップをテキストファイルに保存
データベースの内容を定期的にテキストファイルにバックアップする方法です。
import time
# バックアップを取る関数
def backup_database():
cursor.execute("SELECT * FROM users")
rows = cursor.fetchall()
with open(f'backup_{int(time.time())}.txt', 'w') as file:
for row in rows:
file.write(f"{row[1]},{row[2]}\n")
# 定期的にバックアップ
while True:
backup_database()
time.sleep(3600)
テキストファイルの内容をデータベースで検索
テキ
ストファイルの各行にあるキーワードをデータベースで検索する方法です。
# テキストファイルからキーワードを読み込む
with open('keywords.txt', 'r') as file:
keywords = file.readlines()
# キーワードでデータベースを検索
for keyword in keywords:
keyword = keyword.strip()
cursor.execute("SELECT * FROM users WHERE name LIKE ?", (f"%{keyword}%",))
results = cursor.fetchall()
print(f"Results for keyword '{keyword}': {results}")
まとめ
Pythonを用いて、データベースとテキストファイルのインタラクションは多くの可能性を秘めています。この記事で紹介した基本的な操作から応用例まで、データの扱いに柔軟性を持たせるための手法を学びました。これを機に、Pythonを使ってより効率的なデータ処理を行ってみてはいかがでしょうか。
コメント