# CreateSamples.py
# Group recommendations for every person (like a shopping list)

datRatings = "ratings.dat"
recData = "rec.dat"

def loadData(fileName):
    try:    
        fData = open(fileName, 'r')
    except:
        return []
    out = []
    for line in fData:
        line = line[:-1]  # remove \n
        if len(line) == 0:  # empty line
            continue
        li = [i for i in line.split(",")]
        out.append(li)
    fData.close()
    return out

def saveRecord(li):
    purchaseStr = [str(e) for e in li]                
    sample = ','.join(purchaseStr)
    fOut.write(sample + "\n")

samples = loadData(datRatings)
fOut = open(recData, "w")
myId = 1
li = []
count = 0
# precondition: recommendations of every person are consecutive
for sample in samples:
    personId = int(sample[0])
    if personId != myId:  # next person
        count += 1
        saveRecord(li)
        myId = personId
        li = [sample[1]]
    else:
        li.append(sample[1]) # same person
fOut.close()
print "Number of records:", count
