sqlitebiter のインストールと使用(Ubuntu 上)
前準備
Ubuntu のシステム更新
Ubuntu で OS のシステム更新を行うときは, 端末で,次のコマンドを実行する。これは、パッケージ情報を最新の状態に保ち、インストール済みのパッケージをセキュリティアップデートやバグ修正を含めて更新するためである。
# パッケージリストの情報を更新
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 を用いる.)
Ubuntu のシステム Python を用いるとき, python, pip は,次のコマンドで起動できる.
- python3 (Ubuntu のシステム Python)
- pip3 (pip 3)
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
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 オプションにより,記号を指定した文字(上の例ではアンダースコア)に置換できる.