csvから任意のフォーマットに変換するツールを作成した話

タイトルの通りcsvを変換するツールを作った話です。

github.com

概要とか使い方はGitHubのREADMEに書くとして、ブログには作ったきっかけとかを書こうと思います。

作ったきっかけ

「DBにこの初期値を登録してねー」っていうcsvファイルがあってそれをDBに投入するんですが、そのcsvファイルがちょくちょく変更になったりするので、面倒になって「初期値投入用のコマンドを自動生成すればええやん」となり作りました。

使ったライブラリとか

言語はPythonを使いました。

コマンドライン引数のパースにdocoptを使用しました。
これは初めて使ったんですが、ヘルプを書くことでそれをパースロジックとして使用するという発想が面白いなと思いました。
ヘルプを書くだけでよくて、コードを書く必要がないのつよい。

また、csvファイルのパースにcsvモジュールを、exeファイル化にpyinstallerを使用しました。

フォーマットファイルへの指定方法からわかる人にはわかると思うんですが、フォーマットファイルへのcsv要素の投入はprintf 形式の文字列書式を利用しています。
若干古い仕様なんですが、正規表現えいえいとかをしなくて済んだのでいいかなって。

気になったこと

pyinstallerで--noconsoleオプションを指定をするとコマンドから実行してもprintで書いた文字列が表示されないのでやめた。

exeファイルをダウンロードしようとするとブラウザが怒ってくる。
ネットから取ってきたexeファイルを実行するのは実際危ないので、使う場合はこのツールのことを信用する場合のみ使ってね。

まとめ

しょうもないツールばっか作ってないである程度の大きさのコードを書きたいと思いながらも、こういうことするのは楽しい。

大きいコードは完成までいける気がしないので結局やらないがち。