以下は、指定されたCSVファイルの内容をSQLiteのSAMPLEDB
テーブルにインサートするためのPythonプログラムの例です。このプログラムは、以下の手順を実行します:
- コマンドライン引数からCSVファイルのパスを取得します。
- SQLiteデータベースに接続し、
SAMPLEDB
テーブルの内容を全て削除します。 - CSVファイルからデータを読み込み、
SAMPLEDB
テーブルにインサートします。 - 何らかのエラーが発生した場合、そのエラー内容を
errlog.txt
に書き出します。
import csv import sqlite3 import sys # コマンドライン引数からCSVファイルのパスを取得 csv_file_path = sys.argv[1] # SQLiteデータベースのパス(適宜変更してください) db_path = 'path_to_your_database.db' def import_csv_to_sqlite(csv_path, db_path): try: # データベースに接続 conn = sqlite3.connect(db_path) cursor = conn.cursor() # SAMPLEDBテーブルの内容を全て削除 cursor.execute('DELETE FROM SAMPLEDB') # CSVファイルを開き、各行をSAMPLEDBテーブルにインサート with open(csv_path, 'r', encoding='utf-8') as csv_file: reader = csv.reader(csv_file) next(reader) # ヘッダー行をスキップ for row in reader: cursor.execute('INSERT INTO SAMPLEDB (column1, column2, column3) VALUES (?, ?, ?)', row) # 変更をコミット conn.commit() except Exception as e: # エラー内容をerrlog.txtに書き出し with open('errlog.txt', 'a', encoding='utf-8') as log_file: log_file.write(f'{e}\n') finally: # データベース接続を閉じる if conn: conn.close() if __name__ == '__main__': import_csv_to_sqlite(csv_file_path, db_path)
このスクリプトを使用する前に、以下の点に注意してください: