ロトくじCSVファイルを読み込む関数

ロトくじCSVファイルを読み込む関数を書く。

パッケージの最上位ディレクトリにdataというディレクトリを作成し、その中に当たり数字データのCSVファイルを格納することにする。

■抽選番号データ

CSVファイル 関連記事
ロト7 CSVファイル ロト7抽選番号のCSVファイルを作成する
ロト6 CSVファイル ロト6抽選番号のCSVファイルを作成する
ミニロト CSVファイル ミニロト抽選番号のCSVファイルを作成する

まず、それぞれのCSVファイルを読み込む関数を書く。
宝くじ毎にCSVデータの必要なカラムが違うだけなのだが、関数をひとつにまとめるうまい方法が見つからなかったので、愚直に3個の関数を書いた。

(ファイル名) read_miniloto.py

import os, csv
from loto_basic import LotoBasic

def read_miniloto():
    csv_file = os.path.dirname(os.path.abspath(__file__)) + '/data/miniloto.csv'
    miniloto_data = []
    with open(csv_file, 'rt') as fin:
        reader = csv.reader(fin)
        for num, row in enumerate(reader):
            if num == 0:
                continue
            miniloto = LotoBasic(row[0],\
                    [int(row[2]), int(row[3]), int(row[4]),\
                    int(row[5]), int(row[6])], [int(row[7])],\
                    [int(row[8]), int(row[9]), int(row[10]), int(row[11])],\
                    [int(row[12]), int(row[13]), int(row[14]), int(row[15])])
            miniloto_data.insert(0, miniloto)

    return miniloto_data

if __name__ == '__main__':
    data = read_miniloto()
    for i in data:
        print(i)

(ファイル名) read_loto6.py

import os, csv
from loto_basic import LotoBasic

def read_loto6():
    csv_file = os.path.dirname(os.path.abspath(__file__)) + '/data/loto6.csv'
    loto6_data = []
    with open(csv_file, 'rt') as fin:
        reader = csv.reader(fin)
        for num, row in enumerate(reader):
            if num == 0:
                continue
            loto6 = LotoBasic(row[0],\
                    [int(row[2]), int(row[3]), int(row[4]),\
                    int(row[5]), int(row[6]), int(row[7])],\
                    [int(row[8])],\
                    [int(row[9]), int(row[10]), int(row[11]), int(row[12]), int(row[13])],\
                    [int(row[14]), int(row[15]), int(row[16]), int(row[17]), int(row[18])], int(row[19]) )
            loto6_data.insert(0, loto6)

    return loto6_data

if __name__ == '__main__':
    data = read_loto6()
    for i in data:
        print(i)

(ファイル名) read_loto7.py

import os, csv
from loto_basic import LotoBasic

def read_loto7():
    csv_file = os.path.dirname(os.path.abspath(__file__)) + '/data/loto7.csv'
    loto7_data = []
    with open(csv_file, 'rt') as fin:
        reader = csv.reader(fin)
        for num, row in enumerate(reader):
            if num == 0:
                continue
            loto7 = LotoBasic(row[0],\
                    [int(row[2]), int(row[3]), int(row[4]),\
                    int(row[5]), int(row[6]), int(row[7]), int(row[8])],\
                    [int(row[9]), int(row[10])],\
                    [int(row[11]), int(row[12]), int(row[13]), int(row[14]), int(row[15]), int(row[16])],\
                    [int(row[17]), int(row[18]), int(row[19]), int(row[20]), int(row[21]), int(row[22])], int(row[17]) )
            loto7_data.insert(0, loto7)

    return loto7_data

if __name__ == '__main__':
    data = read_loto7()
    for i in data:
        print(i)

ファイルの階層構造は以下の通り。

lotonumber
├── data
│   ├── loto6.csv
│   ├── loto7.csv
│   └── miniloto.csv
├── loto.py
├── loto_basic.py
├── read_loto6.py
├── read_loto7.py
└── read_miniloto.py

これらの関数を引っさげ、次回はロトくじデータを取得するクラスを書く。