こんにちは、コンテンツクリエイターのともすけ(元半導体エンジニア)です。
筆者は家計簿をMicrosoft OneDriveのExcelで付けています。ある程度はこの中でいろいろと自動処理することで、費目毎の自動集計やsortなどしています。
しかしこれは月単位でファイル化していて、それを12ヶ月分まとめるExcelは作れませんでした。正しくは他ファイルの参照が不安定だったので辞めた、というのが正しいでしょうか。
Excelで作った家計簿データは .xlsx (バイナリ)形式で、これをPythonで読ませてデータを集計、整理した結果を .csv に出力してExcelでグラフ化しようとしたところ、文字コードがUTF-8のため文字化けしました。SJISにする必要が。
numbersでやれば?というのはおいておいて(できるけど)
macにbrewでnkfを入れましたが、ちょっとした面倒があったのでshellスクリプトを書いて楽をしてみました。技術者あるあるだと思いますが、Linuxなどを使う技術者志望の方は「へぇ〜」と思ってください。
あ、今どきはtcshなんか使わずに bash, zsh あたりを使うんでしょうかね。そこは頭の中で置き換えてください。
文中の単語がよくわからんな〜(brewとかnkfとか?)と思われた方は、面倒ですがググってみてください。でもそれだとあまりに不親切なのでザッと書くと
- brew : macOS/Linux用のパッケージマネージャー Homebrewのこと(使えるようにしておくととっても捗りますよ)
- nkf : 文字コードの変換
- tcsh,bash,zsh : シェルプログラム
です。この記事の内容がわかるようになると、技術者レベルがちょっとだけ上がりますよ、きっと。わざと不親切に書いています。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 |
#!/bin/tcsh -f set baseName = $1:r set ext = $1:e set outName = ${baseName}_sj.$ext if ( -e $outName ) then echo -n "$outName is already exist. overwrite it ? (y/...) > " set ans = $< if ( $ans == 'y' || $ans == 'Y' ) then nkf -s $1 > $outName echo "overwrite $outName" else echo "abord it" endif else nkf -s $1 > ${baseName}_sj.$ext echo "create $outName" endif |
サクッとZennとかQiitaに投稿しようと思ったけれど、どちらもちゃんと書かなきゃならなそうだから取り急ぎ自分管理サイトへカキコ。
レンタルサーバーで使うWordPressはおもしろいね。
それではまた