- はじめに
- 環境
- Pythonで利用するツールやライブラリ
- (1) Poetryのインストール
- (2) プロジェクトの作成
- (3) コードの作成
- (4) Pandasのインストール
- (5) VS Codeで仮想環境を指定
- (6) 動作確認
はじめに
レガシーな業務系の基幹システムとデータ連携する場合は、まだまだCSVが活躍している。 今後もCSV処理ツールを作り続けそうなので、作業のテンプレを残しておく。
特に注意が必要なのが、日本語版のWindowsで作成されたCSVは、往々にして文字コードがCP932であるところ。
環境
$ cat /etc/os-release | grep PRETTY_NAME PRETTY_NAME="Ubuntu 22.04.2 LTS" $ uname -srvm Linux 5.19.0-40-generic #41~22.04.1-Ubuntu SMP PREEMPT_DYNAMIC Fri Mar 31 16:00:14 UTC 2 x86_64 $ python3 --version Python 3.10.6 $ code --version 1.77.3 704ed70d4fd1c6bd6342c436f1ede30d1cff4710 x64
Pythonで利用するツールやライブラリ
今回のPythonプログラムの開発では、以下を利用する。
(1) Poetryのインストール
Poetryの公式サイトの手順に沿って、以下のコマンドを実行する。
$ curl -sSL https://install.python-poetry.org | python3 -
以下のように、Poetryのバージョンを確認してみる。
$ poetry --version Poetry (version 1.4.2)
(2) プロジェクトの作成
ここでは、作成するプロジェクトの名前をcsvsample
とする。
以下のように、ターミナルでプロジェクトを作成するディレクトリ(例えば~/src
)に移動した後、プロジェクトを作成する。
$ cd ~/src $ poetry new csvsample
その結果、以下のようなディレクトリ構成が作成される。
~/src └── csvsample ├── README.md ├── csvsample │ └── __init__.py ├── pyproject.toml └── tests └── __init__.py
(3) コードの作成
まず、~/src/csvsample
をワーキングディレクトリとしてVS Codeを起動した後、Explorerでcsvsample/tool.py
を作成し、以下の内容で保存する。
import sys import pandas def main(csv_file_path): data_frame = pandas.read_csv(csv_file_path, encoding='cp932') print(data_frame) if __name__ == '__main__': main(sys.argv[1])
pandas.read_csv()
に引き渡す文字コードだが、「WindowsはShift JIS」という思い込みがあるので思わず'shit_jis'
を指定したくなるものの、これだと機種依存文字に対応できない場合がある。
よって、Shift JISのMicrosoftの拡張である'cp932'
が正解。
この時点では、まだPandasがインストールされていないので、コードエディタ上でimport pandas
あたりがエラーになっているはず。
次に、以下の内容でdata.csv
を作成しておく。
"id","name","age" "1000","John","20" "1001","Jane","30"
(4) Pandasのインストール
ライブラリPandasをインストールするために、Terminalを開いて以下のコマンドを実行する。
$ poetry add pandas
Pandasをインストールしても、まだコード中のエラーは消えないはず。
(5) VS Codeで仮想環境を指定
コード中のpandasが見つからないというエラーを解消するには、VS CodeにPoetryが作成した仮想環境を指定する必要がある。
Poetryは、デフォルトでは~/.cache/pypoetry/virtualenvs
に仮想環境のディレクトリを作成する。
VS Codeのcommand palletでpython: select interpreter
と入力するか、ステータスバーの以下の部分をクリックして、Pythonの仮想環境を指定するポップアップを開く。
そして、以下のように右端にPoetryと書いてあるエントリを選択する。
これで、コードエディタ上のエラーは解消する。
(6) 動作確認
VS Code上のTerminalを開き直すと、上記で設定した仮想環境に自動的に切り替わる。 そのTerminalで以下のように作成したPythonプログラムを実行する。
$ python3 csvsample/tool.py data.csv id name age 0 1000 John 20 1 1001 Jane 30