Pandasで処理した結果をcsvにしてダウンロードしてエクセルで見るということは結構よくあるが、 そのまま開くと文字化けする。原因はエクセルがBOM無しUTF8を正しく処理してくれないため。 BOMを付ければ文字化けしなくなるが、毎回エディタを開いてBOMを付けるのめんどい。。
ということで実行すると「scpでダウンロード>BOMを付ける」までやってくれるバッチファイルを作りました。地味に便利だなぁ。。
@echo off scp -r server:~/output/*.csv ./output :UTF-8 -> BOM UTF-8 setlocal enabledelayedexpansion if not exist "%TMP%\bom.utf8" powershell -nop -c "&{[IO.File]::WriteAllText('%TMP%\bom.utf8', '', [TEXT.Encoding]::UTF8)}" for /F "usebackq delims=`" %%f in (`dir /b C:\work\my_pj\output ^| findstr /l /e /i .csv`) do ( if !ERRORLEVEL! equ 0 ( echo C:\work\my_pj\output\%%f copy /b "%TMP%\bom.utf8" + "C:\work\my_pj\output\%%f" "C:\work\my_pj\output\%%f.bom.csv" > nul del "C:\work\my_pj\output\%%f" ) )
以下を参考にして作りました。ありがとうございます。