""" EXAMPLE that creates a custom data structure (or class) to handle incoming data file The data that this files inputs can be found at: https://github.com/fivethirtyeight/data/blob/master/ahca-polls/ahca_polls.csv Xiannong Meng Based on the ideas of previous CSCI 204 instructor(s) 2017-08-29 """ class ACAPolls: def __init__(self, fname): self.start_date = [] self.end_date = [] self.pollster = [] self.favor_count = [] self.oppose_count = [] self.url = [] self.q_text = [] self._read_data(fname) def _read_data(self, fname): # file = open(fname, "r", encoding='UTF-8') file = open(fname, "r", encoding='Latin1') count = 0 for line in file: my_data = line.split(',') if count == 0: count += 1 continue # skip the headline self.start_date.append(my_data[0]) self.end_date.append(my_data[1]) self.pollster.append(my_data[2]) self.favor_count.append(int(my_data[3])) self.oppose_count.append(int(my_data[4])) self.url.append(my_data[5]) self.q_text.append(my_data[6]) count += 1 print(str(count) + ' records read.') def count_favorite(self): f_count = 0 for i in range(len(self.favor_count)): f_count += self.favor_count[i] return f_count def main(): polls = ACAPolls('ahca_polls.csv') print('Favorite count = ' +str(polls.count_favorite())) main()