自動化を行う際、実行した結果をファイルに出力したいことがあると思います。
ここでは、実行結果をExcelのCSVファイルとして出力する方法についてご紹介します。
出力させたい結果が英数字の場合は簡単に記載できますが、日本語を含むときには1つポイントがあります。これをしないと文字化けしてしまうのでご注意ください。
スポンサーリンク
実行結果をExcel(CSV)に出力する方法
インポート
import csv import datetime
csv取り扱いのために「import csv」を宣言します。
出力するCSVファイルのファイル名に実行日時を使用するために「import datetime」を宣言します。
出力するファイル名を指定
now_time = datetime.datetime.today() date = now_time.strftime("%Y%m%d-%H%M%S") filename = "result" + date + ".csv"
変数「now_time」に現在日時を代入します
変数「date」に「now_time」の表示方法を「YYYYmmdd-HHMMSS」と指定して代入します。
出力するファイル名は、「resultYYYYmmdd-HHMMSS.csv」としています。(例 2018年09月29日12時59分59秒に実行した場合:result20180929-125959.csv)
書き込み用に上記で指定したファイル名でファイルを開く
f = open(filename, 'w') writer = csv.writer(f, lineterminator='\n')
上記で指定したファイル名で書き込み用にファイルを開きます。
また、「writer = csv.writer(f, lineterminator=’\n’)」とすることで、書き込む毎に改行されるようにしています。
書き込むデータを指定する(今回は直接指定する場合のご紹介です)
a=u"テスト" b="test" c="1234" d=1234 data = [a.encode('shift_jis'),b,c,d]
aには文字列「テスト」を代入しました
bには文字列「test」を代入しました
cには文字列「1234」を代入しました
dには数値「1234」を代入しました
書き込みデータ「data」を指定する際にポイントです!日本語を含む場合、「.encode(‘shift_jis’)」をつけるようにしてください。エンコードしないと文字化けしてしまいます。
データを書き込む
writer.writerow(data)
上記でデータをcsvファイルに書き込むことができます。(1行目に書き込まれます)
もう一度writer.writerow(data)を実行すると、2行目に書き込まれます。
csvファイルを閉じる
f.close()
以上です。
上記の全体プログラムは下記をご参照ください。
プログラム
import csv#CSV取り扱いのためのインポート import datetime#本日の日付取り扱いのためのインポート now_time = datetime.datetime.today() date = now_time.strftime("%Y%m%d-%H%M%S")#現在時刻YYYYMMDD-HHMMSS #出力ファイル名を指定 "resultYYYYMMDD-HHMMSS.csv" filename = "result" + date + ".csv" f = open(filename, 'w')#書き込み用のcsvをオープン writer = csv.writer(f, lineterminator='\n') #直接指定 a=u"テスト" b="test" c="1234" d=1234 data = [a.encode('shift_jis'),b,c,d]#書き込み内容を指定 writer.writerow(data)#書き込み実施 f.close()#書き込み用のCSVをクローズ
スポンサーリンク