sqlitebiter のインストールと使用(Ubuntu 上)

sqlitebiter は,CSV, Excel, HTML, JSON, Jupyter Notebook, LTSV, Markdown, TSV, Google スプレッドシート,Web ページ上の表などを SQLite 3 データベースファイルに変換するコマンドラインツールである.文字コードの自動判別と多バイト文字に対応する.

公式リポジトリ: https://github.com/thombashi/sqlitebiter

前準備

Ubuntu のシステム更新

Ubuntu で OS のシステム更新を行うときは, 端末で,次のコマンドを実行する。これは、パッケージ情報を最新の状態に保ち、インストール済みのパッケージをセキュリティアップデートやバグ修正を含めて更新するためである。

Ubuntu のインストールはこちらの別ページで説明する。
# パッケージリストの情報を更新
sudo apt update
# インストール済みのパッケージを包括的に更新 (依存関係も考慮)
sudo apt full-upgrade
# カーネル更新等で実際に再起動が必要な場合のみ実行を推奨
# sudo shutdown -r now

SQLite 3 コマンドラインツールのインストール

変換後のデータベースファイルの中身を確認するために使用する. 端末で,次のコマンドを実行する.

# パッケージリストの情報を更新
sudo apt update
sudo apt -y install sqlite3

Python3 開発用ファイル,pip, setuptools, venv, pipx のインストール(Ubuntu 上)

Python のインストールは行わない(Ubuntu のシステム Python を用いる.)

Python, pip のコマンドでの起動のまとめ.

Ubuntu のシステム Python を用いるとき, python, pip は,次のコマンドで起動できる.

Ubuntu 23.04 以降では,システム Python の環境が PEP 668 により保護されており,sudo pip3 install によるシステム全体への直接インストールはエラーになる.コマンドラインツールをインストールするときは,pipx(各ツールを専用の仮想環境に隔離してインストールするツール)を用いる.

Ubuntu での Python 開発環境(JupyterLab, spyder, nteract)のインストール: 別ページ »で説明

Python3 開発用ファイル,pip, setuptools, venv, pipx のインストール

端末で,次のコマンドを実行する.

# パッケージリストの情報を更新
sudo apt update
sudo apt -y install python-is-python3 python3-dev python-dev-is-python3 python3-pip python3-setuptools python3-venv pipx build-essential
# pipx でインストールしたコマンドの置き場所 (~/.local/bin) を PATH に追加
pipx ensurepath
pipx ensurepath の実行後,PATH の変更を反映するために端末を開き直す.

pipx パッケージは Ubuntu 22.04 以降で提供される.Ubuntu 20.04 では python3 -m pip install --user pipx でインストールする.

sqlitebiter のインストール

端末で,次のコマンドを実行する. HTML や Markdown の変換を高速に行うための lxml も併せて導入する.

pipx install sqlitebiter
pipx inject sqlitebiter lxml
sqlitebiter version
Google スプレッドシート(gs サブコマンド)を使用するときは,追加の依存パッケージが必要である.次のコマンドでインストールする.
pipx install "sqlitebiter[gs]"

インストール後の設定(コマンド補完)

bash のコマンド補完を有効にするには,端末で,次のコマンドを実行する.

sqlitebiter completion bash >> ~/.bashrc
リダイレクトは,追記を意味する >> を用いる.> を用いると ~/.bashrc の既存の内容が失われる.

設定を反映するには,端末を開き直すか,source ~/.bashrc を実行する.

sqlitebiter を実行してみる

CSV ファイルを SQLite 3 データベースファイルに変換し,SQLite 3 を起動してテーブルの中身を確認する. 事前に CSV ファイルを準備しておく.

端末で,次のコマンドを実行する. この結果,SQLite 3 データベースファイル(ファイル名は out.sqlite)ができる.出力ファイル名は -o オプションで変更できる.

cd /tmp
sqlitebiter file /usr/local/dt/pokemon.csv
sqlite3 out.sqlite
.tables
select * from pokemon;
.exit

Web ページ上の表を変換するときは,url サブコマンドを用いる. 端末で,次のコマンドを実行する.

cd /tmp
sqlitebiter --replace-symbol _ url "https://en.wikipedia.org/wiki/Comparison_of_firewalls"
sqlite3 out.sqlite
.tables
.exit
変換元の表の見出しに記号が含まれると,そのまま列名に反映される.--replace-symbol オプションにより,記号を指定した文字(上の例ではアンダースコア)に置換できる.