【Sikuli/Sikulix】実行結果をExcel(CSV)に出力する方法

自動化を行う際、実行した結果をファイルに出力したいことがあると思います。

ここでは、実行結果を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()

 

以上です。

上記の全体プログラムは下記をご参照ください。

 

Sikuli関連記事はこちら

 

プログラム

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をクローズ

 

スポンサーリンク