import sys import csv COUNTRY_IDX = 0 INDICATOR_IDX = 1 def get_data_for(csvreader, indicator): all_data = [] for row in csvreader: if row[INDICATOR_IDX] == indicator: all_data.append((row[COUNTRY_IDX], [int(num.replace('.', '')) if len(num.strip()) != 0 else None for num in row[2:]])) return all_data def output_data(filename, data): with open(filename, 'w') as f: f.write("Year {}\n".format(" ".join(list([('"' + country + '"') for country, _ in data])))) for idx, year in enumerate(range(1970, 2016)): values = (data_set[idx] if data_set[idx] is not None else 0 for _, data_set in data) f.write("{} {}\n".format(year, ' '.join(str(v) for v in values))) def main(args): with open('GDP-Countries-USD.csv', newline='') as csvfile: csvreader = csv.reader(csvfile, delimiter=';') data = get_data_for(csvreader, 'Gross Domestic Product (GDP)') output_data('data_out.txt', data) print("File generated") if __name__ == '__main__': main(sys.argv[1:])