Python: SQLite3のDBファイル内のテーブル一覧を取得
SQLite3のデータベースファイルからテーブル名の一覧を取得する関数を作成します。
この関数は、データベースファイル名を引数として受け取り、テーブル名のリストを返します。
サンプルコード
import sqlite3 def get_table_names(db_file): """ 指定されたSQLite3データベースファイルからテーブル名の一覧を取得する Args: db_file (str): データベースファイルのパス Returns: テーブル名のリスト """ table_names = [] try: # with文を使用してデータベースに接続 with sqlite3.connect(db_file) as conn: # カーソルを取得 cursor = conn.cursor() # テーブル一覧を取得するSQLクエリ query = "SELECT name FROM sqlite_master WHERE type='table';" # クエリを実行し、結果を取得 cursor.execute(query) tables = cursor.fetchall() # テーブル名をリストに追加 table_names = [table[0] for table in tables] except sqlite3.Error as e: print(f"データベースエラーが発生しました: {e}") except Exception as e: print(f"予期せぬエラーが発生しました: {e}") return table_names # 使用例 if __name__ == "__main__": db_file = 'sample.db' tables = get_table_names(db_file) if tables: print("テーブル一覧:") for table in tables: print(table) else: print("テーブルが見つからないか、エラーが発生しました。")
このコードの特徴
- 関数の引数: データベースファイル名を受け取ります。
- 戻り値: データベース内のテーブル名のリストを返します。
- with文: データベース接続を自動的に管理します。
- エラーハンドリング: データベースエラーと一般的な例外を捕捉します。
- リスト内包表記: 結果からテーブル名のリストを効率的に作成します。
使用例も含まれており、このスクリプトを直接実行すると、 'sample.db'ファイル内のテーブル名が表示されます。適切なデータベースファイル名を指定して使用してください。