ロト6抽選番号のCSVファイルを作成する

前回はミニロト抽選番号のCSVファイルを作成したので、そのときのスクリプトファイルを流用して、ロト6抽選番号のCSVファイルを作成する。

■スクリプトファイル
mk6.py

# ロト6抽選番号CSVファイルの作成

import sys, os, re, csv

if len(sys.argv) != 2:
    print('引数の数が間違っています。')
    print('python {} ロト6抽選番号ファイル'.format(os.path.basename(__file__)))
    sys.exit()

spc = re.compile(r'\s+')

# CSV Writerの準備
out_csv = open('loto6.csv', 'wt', newline='')
out_w = csv.writer(out_csv)

# CSVヘッダー行出力
out_w.writerow(['回', '日付', '数字1', '数字2', '数字3', '数字4', '数字5', '数字6', 'ボーナス数字',\
        '一等の当選数', '二等の当選数', '三等の当選数', '四等の当選数', '五等の当選数', '一等当選金額', '二等当選金額', '三等当選金額', '四等当選金額', '五等当選金額', 'キャリーオーバー金額'])

with open(sys.argv[1]) as f:
    while True:
        l1 = f.readline()
        if not l1:
            break

        # 続けて6行読み込む
        l2 = f.readline()
        l3 = f.readline()
        l4 = f.readline()
        l5 = f.readline()
        l6 = f.readline()
        l7 = f.readline()

        # 行末の改行を削除する
        l1 = l1.replace('\n', '')
        l2 = l2.replace('\n', '')
        l3 = l3.replace('\n', '')
        l4 = l4.replace('\n', '')
        l5 = l5.replace('\n', '')
        l6 = l6.replace('\n', '')
        l7 = l7.replace('\n', '')

        # データを空白文字で分割し抜き出す
        round = l1[1:-1]
        year = l2
        date, no1, no2, no3 = re.split(spc, l3)
        no4, no5, no6 = re.split(spc, l4)
        bn, num1, num2, num3, num4, num5 = re.split(spc, l5)
        m1, m2, m3, m4, m5 = re.split(spc, l6)
        _, co = re.split(spc, l7)

        # データ整形
        mon, day = date.split('/')
        date = '/'.join([year, mon, day])
        bn = bn.replace('(', '').replace(')', '')

        if num1 == '該当なし':
            num1 = 0
        else:
            num1 = num1.replace('口', '').replace(',', '')

        num2 = num2.replace('口', '').replace(',', '')
        num3 = num3.replace('口', '').replace(',', '')
        num4 = num4.replace('口', '').replace(',', '')
        num5 = num5.replace('口', '').replace(',', '')

        if m1 == '該当なし':
            m1 = 0
        else:
            m1 = m1.replace('円', '').replace(',', '')
            
        m2 = m2.replace('円', '').replace(',', '')
        m3 = m3.replace('円', '').replace(',', '')
        m4 = m4.replace('円', '').replace(',', '')
        m5 = m5.replace('円', '').replace(',', '')

        if co == '該当なし':
            co = 0
        else:
            co = co[:-1].replace(',', '') # 『円』と『,』を取る

        out_w.writerow([round, date, no1, no2, no3, no4, no5, no6, bn,\
                num1, num2, num3, num4, num5, m1, m2, m3, m4, m5, co])

out_csv.close()

処理内容の割にはプログラムが長くなってしまったが、一度しか実行しないスクリプトなので、別に構わない。

ロト6データファイルを指定して、実行する。

$ python mk6.py loto6.data

カレントディレクトリにloto6.csvが作成される。

ロト7抽選番号のCSVファイルを作成する »