XLRD

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
#!/usr/bin/env python
 
import xlrd
from zipfile import zipfile
datafile = "2013_ERCOT_Hourly_Load_Data.xls"
 
def open_zip(datafile):
    with ZipFile('{0}.zip'.format(datafile),'r') as myzip:
        myzip.extractall()
 
def parse_file(datafile):
    workbook = xlrd.open_workbook(datafile)
    sheet = workbook.sheet_by_index(0)
 
    data = [[sheet.cell_value(r, col)
            for col in range(sheet.ncols)]
                for r in range(sheet.nrows)]
 
    cv = sheet.col_value(1, start_rowx=1, end_rowx=None)
 
    maxval = max(cv)
    minval = min(cv)
 
    maxpos = cv.index(maxval) + 1
    minpos = cv.index(minval) + 1
 
    maxtime = sheet.cell_value(maxpos, 0)
    realtime = xlrd.xldate_as_tuple(maxtime, 0)
    mintime = sheet.cell_value(minpos, 0)
    realmintime = xlrd.xldate_as_tupple(mintime, 0)
 
    data = {
        'maxtime':(0,0,0,0,0,0),
        'maxvalue': 0,
        'mintime': (0,0,0,0,0,0),
        'minvalue': 0,
        'avgcoast': 0
    }
    return data
 
def test():
    open_zip(datafile)
    data = parse_file(datafile)
 
    assert data['maxtime'] == (2013, 8, 13, 17, 0, 0)
    assert round(data['maxvalue'], 10) == round(18779.02551, 10)