import mechanize import cookielib from bs4 import BeautifulSoup as BS import datetime import sys import csv import os   br = mechanize.Browser() cj = cookielib.LWPCookieJar() br.set_cookiejar(cj) br.set_handle_robots(False) br.addheaders = [('User-agent', 'Mozilla/5.0 (Windows NT 6.1; Win64; x64; rv:24.0) Gecko/20140610 Firefox/24.0 PaleMoon/24.6.2')]         def techlevels(alliance):     advanced = persian = almost = vietnam = korean = second = first = finest = stone = 0     for i in alliance:         if i['equipment'].rstrip() == 'Advanced':             advanced += 1         elif i['equipment'].rstrip() == 'Persian Gulf War surplus':             persian += 1         elif i['equipment'].rstrip() == 'Almost Modern':             almost += 1         elif i['equipment'].rstrip() == 'Vietnam War surplus':             vietnam += 1         elif i['equipment'].rstrip() == 'Korean War surplus':             korean += 1         elif i['equipment'].rstrip() == 'Second World War surplus':             second += 1         elif i['equipment'].rstrip() == 'First World War surplus':             first += 1         elif i['equipment'].rstrip() == 'Finest of the 19th century':             finest += 1         else:             stone += 1     return advanced, persian, almost, vietnam, korean, second, first, finest, stone     def airforcelevels(alliance):     vpowerful = powerful = large = somelarge = mediocre = meagre = small = none = 0     for i in alliance:         if i['airforce'].rstrip() == 'Very Powerful':             vpowerful += 1         elif i['airforce'].rstrip() == 'Powerful':             powerful += 1         elif i['airforce'].rstrip() == 'Large':             large += 1         elif i['airforce'].rstrip() == 'Somewhat Large':             somelarge += 1         elif i['airforce'].rstrip() == 'Mediocre':             mediocre += 1         elif i['airforce'].rstrip() == 'Meagre':             meagre += 1         elif i['airforce'].rstrip() == 'Small':             small += 1         else:             none += 1     return vpowerful, powerful, large, somelarge, mediocre, meagre, small, none   def traininglevels(alliance):     elite = good = standard = poor = rabble = 0     for i in alliance:         if i['training'].rstrip() == 'Elite':             elite += 1         elif i['training'].rstrip() == 'Good':             good += 1         elif i['training'].rstrip() == 'Standard':             standard += 1         elif i['training'].rstrip() == 'Poor':             poor += 1         else:             rabble += 1     return elite, good, standard, poor, rabble     def regionlevels(alliance):     mam = car = gra = ama = sco = saf = con = eaf = gui = waf = atl = egy = ara = mpo = per = sub = chi = ind = ein = pac = 0     for i in alliance:         if i['region'].rstrip() == 'Mesoamerica':             mam += 1         elif i['region'].rstrip() == 'Caribbean':             car += 1         elif i['region'].rstrip() == 'Gran Colombia':             gra += 1         elif i['region'].rstrip() == 'Amazonia':             ama += 1         elif i['region'].rstrip() == 'Southern Cone':             sco += 1         elif i['region'].rstrip() == 'Southern Africa':             saf += 1         elif i['region'].rstrip() == 'Congo':             con += 1         elif i['region'].rstrip() == 'East Africa':             eaf += 1         elif i['region'].rstrip() == 'Guinea':             gui += 1         elif i['region'].rstrip() == 'West Africa':             waf += 1         elif i['region'].rstrip() == 'Atlas':             atl += 1         elif i['region'].rstrip() == 'Egypt':             egy += 1         elif i['region'].rstrip() == 'Arabia':             ara += 1         elif i['region'].rstrip() == 'Mesopotamia':             mpo += 1         elif i['region'].rstrip() == 'Persia':             per += 1         elif i['region'].rstrip() == 'The Subcontinent':             sub += 1         elif i['region'].rstrip() == 'China':             chi += 1         elif i['region'].rstrip() == 'Indochina':             ind += 1         elif i['region'].rstrip() == 'East Indies':             ein += 1         elif i['region'].rstrip() == 'Pacific Rim':             pac += 1     return mam, car, gra, ama, sco, saf, con, eaf, gui, waf, atl, egy, ara, mpo, per, sub, chi, ind, ein, pac   def manpowerlevels(alliance):     untapped = plentiful = halved = low = neardep = depleted = 0     for i in alliance:         if i['manpower'].rstrip() == 'Untapped':             untapped += 1         elif i['manpower'].rstrip() == 'Plentiful':             plentiful += 1         elif i['manpower'].rstrip() == 'Halved':             halved += 1         elif i['manpower'].rstrip() == 'Low':             low += 1         elif i['manpower'].rstrip() == 'Near Depletion':             neardep += 1         elif i['manpower'].rstrip() == 'Depleted':             depleted += 1     return untapped, plentiful, halved, low, neardep, depleted   def approvallevels(alliance):     waag = adored = loved = liked = decent = middling = disliked = hated = despised = eop = 0     for i in alliance:         if i['approval'].rstrip() == 'Worshiped as a God':             waag += 1         elif i['approval'].rstrip() == 'Adored':             adored += 1         elif i['approval'].rstrip() == 'Loved':             loved += 1         elif i['approval'].rstrip() == 'Liked':             liked += 1         elif i['approval'].rstrip() == 'Decent':             decent += 1         elif i['approval'].rstrip() == 'Middling':             middling += 1         elif i['approval'].rstrip() == 'Disliked':             disliked += 1         elif i['approval'].rstrip() == 'Hated':             hated += 1         elif i['approval'].rstrip() == 'Utterly Despised':             despised += 1         elif i['approval'].rstrip() == 'Enemy of the People':             eop += 1     return waag, adored, loved, liked, decent, middling, disliked, hated, despised, eop     def polsystemlevels(alliance):     libdem = authdem = opr = junta = dictat = 0     for i in alliance:         if i['polsystem'].rstrip() == 'Liberal Democracy':             libdem += 1         elif i['polsystem'].rstrip() == 'Authoritarian Democracy':             authdem += 1         elif i['polsystem'].rstrip() == 'One Party Rule':             opr += 1         elif i['polsystem'].rstrip() == 'Military Junta':             junta += 1         elif i['polsystem'].rstrip() == 'Dictatorship':             dictat += 1     return libdem, authdem, opr, junta, dictat     def stabilitylevels(alliance):     unsink = entrenched = vstable = quiet = calm = tensions = chaotic = rioting = protests = collapse = 0     for i in alliance:         if i['stability'].rstrip() == 'Unsinkable':             unsink += 1         elif i['stability'].rstrip() == 'Entrenched':             entrenched += 1         elif i['stability'].rstrip() == 'Very Stable':             vstable += 1         elif i['stability'].rstrip() == 'Quiet':             quiet += 1         elif i['stability'].rstrip() == 'Seemingly Calm':             calm += 1         elif i['stability'].rstrip() == 'Growing Tensions':             tensions += 1         elif i['stability'].rstrip() == 'Chaotic':             chaotic += 1         elif i['stability'].rstrip() == 'Rioting':             rioting += 1         elif i['stability'].rstrip() == 'Mass Protests':             protests += 1         elif i['stability'].rstrip() == 'Brink of Collapse':             collapse += 1     return unsink, entrenched, vstable, quiet, calm, tensions, chaotic, rioting, protests, collapse     def rebelslevels(alliance):     norebels = terror = guerrilla = rebellion = civil = 0     for i in alliance:         if i['rebels'].rstrip() == 'None':             norebels += 1         elif i['rebels'].rstrip() == 'Scattered terrorists':             terror += 1         elif i['rebels'].rstrip() == 'Guerrillas':             guerrilla += 1         elif i['rebels'].rstrip() == 'Open Rebellion':             rebellion += 1         elif i['rebels'].rstrip() == 'Civil War':             civil += 1     return norebels, terror, guerrilla, rebellion, civil     def econsystemlevels(alliance):     free = mixed = command = 0     for i in alliance:         if i['econsystem'].rstrip() == 'Free Market':             free += 1         elif i['econsystem'].rstrip() == 'Mixed Economy':             mixed += 1         elif i['econsystem'].rstrip() == 'Central Planning':             command += 1     return free, mixed, command     def qollevels(alliance):     developed = good = decent = above = average = poor = impov = desp = disast = crisis = 0     for i in alliance:         if i['qol'].rstrip() == 'Developed':             developed += 1         elif i['qol'].rstrip() == 'Good':             good += 1         elif i['qol'].rstrip() == 'Decent':             decent += 1         elif i['qol'].rstrip() == 'Above Average':             above += 1         elif i['qol'].rstrip() == 'Average':             average += 1         elif i['qol'].rstrip() == 'Poor':             poor += 1         elif i['qol'].rstrip() == 'Impoverished':             impov += 1         elif i['qol'].rstrip() == 'Desperate':             desp += 1         elif i['qol'].rstrip() == 'Disastrous':             disast += 1         else:             crisis += 1     return developed, good, decent, above, average, poor, impov, desp, disast, crisis     def alignlevels(alliance):     west = non = east = 0     for i in alliance:         if i['alignment'].rstrip() == 'United States':             west += 1         elif i['alignment'].rstrip() == 'Neutral':             non += 1         elif i['alignment'].rstrip() == 'Soviet Union':             east += 1     return west, non, east     def replevels(alliance):     gandhi = angelic = nice = good = normal = quest = isolated = pariah = maddog = aoe = 0     for i in alliance:         if i['reputation'].rstrip() == 'Gandhi-like':             gandhi += 1         elif i['reputation'].rstrip() == 'Angelic':             angelic += 1         elif i['reputation'].rstrip() == 'Nice':             nice += 1         elif i['reputation'].rstrip() == 'Good':             good += 1         elif i['reputation'].rstrip() == 'Normal':             normal += 1         elif i['reputation'].rstrip() == 'Questionable':             quest += 1         elif i['reputation'].rstrip() == 'Isolated':             isolated += 1         elif i['reputation'].rstrip() == 'Pariah':             pariah += 1         elif i['reputation'].rstrip() == 'Mad Dog':             maddog += 1         elif i['reputation'].rstrip() == 'Axis of Evil':             aoe += 1     return gandhi, angelic, nice, good, normal, quest, isolated, pariah, maddog, aoe   def regiontroops(alliance):     mam = car = gra = ama = sco = saf = con = eaf = gui = waf = atl = egy = ara = mpo = per = sub = chi = ind = ein = pac = 0     for i in alliance:         if i['region'].rstrip() == 'Mesoamerica':             mam += i['troops']         elif i['region'].rstrip() == 'Caribbean':             car += i['troops']         elif i['region'].rstrip() == 'Gran Colombia':             gra += i['troops']         elif i['region'].rstrip() == 'Amazonia':             ama += i['troops']         elif i['region'].rstrip() == 'Southern Cone':             sco += i['troops']         elif i['region'].rstrip() == 'Southern Africa':             saf += i['troops']         elif i['region'].rstrip() == 'Congo':             con += i['troops']         elif i['region'].rstrip() == 'East Africa':             eaf += i['troops']         elif i['region'].rstrip() == 'Guinea':             gui += i['troops']         elif i['region'].rstrip() == 'West Africa':             waf += i['troops']         elif i['region'].rstrip() == 'Atlas':             atl += i['troops']         elif i['region'].rstrip() == 'Egypt':             egy += i['troops']         elif i['region'].rstrip() == 'Arabia':             ara += i['troops']         elif i['region'].rstrip() == 'Mesopotamia':             mpo += i['troops']         elif i['region'].rstrip() == 'Persia':             per += i['troops']         elif i['region'].rstrip() == 'The Subcontinent':             sub += i['troops']         elif i['region'].rstrip() == 'China':             chi += i['troops']         elif i['region'].rstrip() == 'Indochina':             ind += i['troops']         elif i['region'].rstrip() == 'East Indies':             ein += i['troops']         elif i['region'].rstrip() == 'Pacific Rim':             pac += i['troops']     return mam, car, gra, ama, sco, saf, con, eaf, gui, waf, atl, egy, ara, mpo, per, sub, chi, ind, ein, pac   def getsoup(url):     while True:         try:             temp = br.open(url)         except:             print "Timeout, requesting again."         else:             break     html = temp.read()     soup = BS(html)     # print soup.prettify()     return soup   def getdata(soup):     data = {}     if soup.find(size="2").string == 'online now':         data['online'] = 0     else:         data['online'] = int(soup.find(size="2").string[12:-10])     data['name'] = soup.find(id="nationtitle").string     data['approval'] = soup.find(text='Approval:').parent.next_sibling.next_sibling.contents[0].string     data['polsystem'] = soup.find(text='Political System:').parent.next_sibling.next_sibling.contents[0].string     data['stability'] = soup.find(text='Stability:').parent.next_sibling.next_sibling.contents[0].string     data['qol'] = soup.find(text='Quality of Life:').parent.next_sibling.next_sibling.contents[0].string     data['territory'] = int(str(soup.find(text='Territory:').parent.next_sibling.next_sibling.contents)[4:-20])     data['rebels'] = soup.find(text='Rebel Threat:').parent.next_sibling.next_sibling.contents[0].string     data['econsystem'] = soup.find(text='Economic System:').parent.next_sibling.next_sibling.contents[0].string     if soup.find(text='Industry:').parent.next_sibling.next_sibling.contents[0].string == 'None':         data['factories'] = 0     elif soup.find(text='Industry:').parent.next_sibling.next_sibling.contents[0].string == '1 factory':         data['factories'] = 1     else:         data['factories'] = int(soup.find(text='Industry:').parent.next_sibling.next_sibling.contents[0].string[:-10])     data['gdp'] = int(soup.find(text='Gross Domestic Product:').parent.next_sibling.next_sibling.contents[0].string[1:-8])     data['growth'] = int(soup.find(text='Growth:').parent.next_sibling.next_sibling.contents[0].string[1:-18])     if soup.find(text='Discovered Oil Reserves:').parent.next_sibling.next_sibling.contents[0].string == 'None':         data['oilres'] = 0     else:         data['oilres'] = int(soup.find(text='Discovered Oil Reserves:').parent.next_sibling.next_sibling.contents[0].string[:-5])     if soup.find(text='Oil Production:').parent.next_sibling.next_sibling.contents[0].string == 'None':         data['oilprod'] = 0     else:         data['oilprod'] = int(soup.find(text='Oil Production:').parent.next_sibling.next_sibling.contents[0].string[:-15])     try:         data['rmprod'] = int(soup.find(text='Raw Material Production:').parent.next_sibling.next_sibling.contents[0].string[:-23])     except:         print "rm" + soup.find(text='Raw Material Production:').parent.next_sibling.next_sibling.contents[0].string     data['alignment'] = soup.find(text='Official Alignment:').parent.next_sibling.next_sibling.contents[0].string     data['region'] = soup.find(text='Region:').parent.next_sibling.next_sibling.contents[0].string     data['reputation'] = soup.find(text='Reputation:').parent.next_sibling.next_sibling.contents[0].string     try:         data['troops'] = int(soup.find(text='Army Size:').parent.next_sibling.next_sibling.contents[0].string[:-18])     except:         print 'tr' + soup.find(text='Army Size:').parent.next_sibling.next_sibling.contents[0].string     data['manpower'] = soup.find(text='Manpower:').parent.next_sibling.next_sibling.contents[0].string     data['equipment'] = soup.find(text='Equipment:').parent.next_sibling.next_sibling.contents[0].string     data['training'] = soup.find(text='Training:').parent.next_sibling.next_sibling.contents[0].string     data['airforce'] = soup.find(text='Airforce:').parent.next_sibling.next_sibling.contents[0].string     if soup.find(text='Wars:').parent.next_sibling.next_sibling.contents[0].string == 'At peace.':         data['wars'] = 'peace'     else:         data['wars'] = 'war'     if soup.find(text='Uranium:') == None:         data['uranium'] = 0     else:         data['uranium'] = int(soup.find(text='Uranium:').parent.next_sibling.next_sibling.contents[0].string[:-5])     return data       # print "\nWhat is your username?" # username = str(raw_input("> "))   # print "\nWhat is your password?" # password = str(raw_input("> "))   # print "\nHow many pages of alliances do you want to capture? 10 per page. Suggested 2." # alliancepagesno = int(raw_input("> ")) alliancepagesno = 2   print "\nLogging in..." while True:     try:         loginresponse = br.open('http://blocgame.com')     except:         print "Timeout, requesting again."     else:         break br.form = list(br.forms())[0] br["username"] = 'dashiell' br["password"] = '1db512a7' br.submit() print "Done."     alliancelinks = [] print "\nGetting alliance urls..." for i in range(1,1+alliancepagesno):     soup = getsoup('http://blocgame.com/alliancerankings.php?page=%s' % i)     for link in soup.find_all('a'):         if 'alliancestats.php?allianceid=' in str(link.get('href')):             alliancelinks.append(link.get('href')) print "Done."   j = 1 names = [] data = [] for i in alliancelinks:     print "\nGathering data on alliance %s of %s..." % (j, len(alliancelinks))     alliance = []     nations = []       soup = getsoup('http://blocgame.com/%s' % i)     names.append(soup.find('h1').string)       for link in soup.find_all('a'):         if 'stats.php?id=' in str(link.get('href')):             nations.append(link.get('href'))       for i in nations:         soup = getsoup('http://blocgame.com/%s' % i)         nationdata = getdata(soup)         nationdata['id'] = i[13:]         alliance.append(nationdata)       data.append(alliance)     j += 1     print "Done."   print "\nOutputting to CSV... "   generaldata = [] troopdata = [] uraniumlist = [] for alliance in data:     datad = {}     troopd = {}     gdp = growth = troops = factories = territory = rmprod = oilprod = oilres = uranium = inactive = 0     for nation in alliance:         gdp += nation['gdp']         growth += nation['growth']         troops += nation['troops']         factories += nation['factories']         rmprod += nation['rmprod']         oilprod += nation['oilprod']         oilres += nation['oilres']         uranium += nation['uranium']         inactive += nation['online']         if nation['uranium'] > 0:             uraniumlist.append({'name':nation['name'], 'id':nation['id'], 'uranium':uranium})       datad['size'] = len(alliance)     datad['gdp'] = gdp     datad['avggdp'] = round(gdp/float(len(alliance)), 1)     datad['growth'] = growth     datad['avggrowth'] = round(growth/float(len(alliance)), 1)     datad['factories'] = factories     datad['avgfactories'] = round(factories/float(len(alliance)), 1)     datad['territory'] = territory     datad['avgterritory'] = round(territory/float(len(alliance)), 1)     datad['rmprod'] = rmprod     datad['avgrmprod'] = round(rmprod/float(len(alliance)), 1)     datad['oilprod'] = oilprod     datad['avgoilprod'] = round(oilprod/float(len(alliance)), 1)     datad['oilres'] = oilres     datad['avgoilres'] = round(oilres/float(len(alliance)), 1)     datad['inactive'] = inactive     datad['avginactive'] = round(inactive/float(len(alliance)), 1)     datad['uranium'] = uranium       datad['advanced'], datad['persian'], datad['almost'], datad['vietnam'], datad['korean'], datad['second'], \         datad['first'], datad['finest'], datad['stone'] = techlevels(alliance)       datad['vpowerful'], datad['powerful'], datad['large'], datad['somelarge'], datad['mediocre'], datad['meagre'], \         datad['small'], datad['noair'] = airforcelevels(alliance)       datad['elite'], datad['good'], datad['standard'], datad['poortr'], datad['rabble'] = traininglevels(alliance)       datad['mam'], datad['car'], datad['gra'], datad['ama'], datad['sco'], datad['saf'], datad['con'], datad['eaf'], \         datad['gui'], datad['waf'], datad['atl'], datad['egy'], datad['ara'], datad['mpo'], datad['per'], datad['sub'], \         datad['chi'], datad['ind'], datad['ein'], datad['pac'] = regionlevels(alliance)       datad['untapped'], datad['plentiful'], datad['halved'], datad['low'], datad['neardep'], datad['depleted'] = manpowerlevels(alliance)       datad['waag'], datad['adored'], datad['loved'], datad['liked'], datad['decent'], datad['middling'], datad['disliked'], \         datad['hated'], datad['despised'], datad['eop'] = approvallevels(alliance)       datad['libdem'], datad['authdem'], datad['opr'], datad['junta'], datad['dictat'] = polsystemlevels(alliance)       datad['unsink'], datad['entren'], datad['vstable'], datad['quiet'], datad['calm'], datad['tensions'], datad['chaotic'], \         datad['rioting'], datad['protests'], datad['collapse'] = stabilitylevels(alliance)       datad['norebels'], datad['terror'], datad['guerrilla'], datad['rebellion'], datad['civil'] = rebelslevels(alliance)         datad['free'], datad['mixed'], datad['command'] = econsystemlevels(alliance)       datad['developed'], datad['good'], datad['decent'], datad['above'], datad['average'], datad['poorqol'], datad['impov'], \         datad['desp'], datad['disast'], datad['crisis'] = qollevels(alliance)       datad['west'], datad['non'], datad['east'] = alignlevels(alliance)       datad['gandhi'], datad['angelic'], datad['nice'], datad['good'], datad['normal'], datad['quest'], datad['isolated'], \         datad['pariah'], datad['maddog'], datad['aoe'] = replevels(alliance)       troopd['troops'] = troops     troopd['avgtroops'] = round(troops/float(len(alliance)), 1)       troopd['mam'], troopd['car'], troopd['gra'], troopd['ama'], troopd['sco'], troopd['saf'], troopd['con'], troopd['eaf'], \         troopd['gui'], troopd['waf'], troopd['atl'], troopd['egy'], troopd['ara'], troopd['mpo'], troopd['per'], troopd['sub'], \         troopd['chi'], troopd['ind'], troopd['ein'], troopd['pac'] = regiontroops(alliance)       generaldata.append(datad)     troopdata.append(troopd)   with open('generaldata,%s.csv' % datetime.datetime.utcnow().strftime('%d-%m,%H-%M-%S'), 'w') as csvfile:     writer = csv.writer(csvfile, quoting=csv.QUOTE_MINIMAL)     writer.writerow(['Name'] + [name for name in names])       writer.writerow(['General'])     writer.writerow(['Size'] + [alliance['size'] for alliance in generaldata])     writer.writerow(['Total GDP'] + [alliance['gdp'] for alliance in generaldata])     writer.writerow(['Average GDP'] + [alliance['avggdp'] for alliance in generaldata])     writer.writerow(['Total growth'] + [alliance['growth'] for alliance in generaldata])     writer.writerow(['Average growth'] + [alliance['avggrowth'] for alliance in generaldata])     writer.writerow(['Total factories'] + [alliance['factories'] for alliance in generaldata])     writer.writerow(['Average factories'] + [alliance['avgfactories'] for alliance in generaldata])     writer.writerow(['Total RM production'] + [alliance['rmprod'] for alliance in generaldata])     writer.writerow(['Average RM production'] + [alliance['avgrmprod'] for alliance in generaldata])     writer.writerow(['Total oil production'] + [alliance['oilprod'] for alliance in generaldata])     writer.writerow(['Average oil production'] + [alliance['avgoilprod'] for alliance in generaldata])     writer.writerow(['Total oil reserves'] + [alliance['oilres'] for alliance in generaldata])     writer.writerow(['Average oil reserves'] + [alliance['avgoilres'] for alliance in generaldata])     writer.writerow(['Total territory'] + [alliance['territory'] for alliance in generaldata])     writer.writerow(['Average territory'] + [alliance['avgterritory'] for alliance in generaldata])     writer.writerow(['Total time inactive'] + [alliance['inactive'] for alliance in generaldata])     writer.writerow(['Average time inactive'] + [alliance['avginactive'] for alliance in generaldata])     writer.writerow(['Total uranium'] + [alliance['uranium'] for alliance in generaldata])       writer.writerow(['Regions'])     writer.writerow(['Mesoamerica'] + [alliance['mam'] for alliance in generaldata])     writer.writerow(['Caribbean'] + [alliance['car'] for alliance in generaldata])     writer.writerow(['Gran Colombia'] + [alliance['gra'] for alliance in generaldata])     writer.writerow(['Amazonia'] + [alliance['ama'] for alliance in generaldata])     writer.writerow(['Southern Cone'] + [alliance['sco'] for alliance in generaldata])     writer.writerow(['Southern Africa'] + [alliance['saf'] for alliance in generaldata])     writer.writerow(['Congo'] + [alliance['con'] for alliance in generaldata])     writer.writerow(['East Africa'] + [alliance['eaf'] for alliance in generaldata])     writer.writerow(['Guinea'] + [alliance['gui'] for alliance in generaldata])     writer.writerow(['West Africa'] + [alliance['waf'] for alliance in generaldata])     writer.writerow(['Atlas'] + [alliance['atl'] for alliance in generaldata])     writer.writerow(['Egypt'] + [alliance['egy'] for alliance in generaldata])     writer.writerow(['Arabia'] + [alliance['ara'] for alliance in generaldata])     writer.writerow(['Mesopotamia'] + [alliance['mpo'] for alliance in generaldata])     writer.writerow(['Persia'] + [alliance['per'] for alliance in generaldata])     writer.writerow(['The Subcontinent'] + [alliance['sub'] for alliance in generaldata])     writer.writerow(['China'] + [alliance['chi'] for alliance in generaldata])     writer.writerow(['Indochina'] + [alliance['ind'] for alliance in generaldata])     writer.writerow(['East Indies'] + [alliance['ein'] for alliance in generaldata])     writer.writerow(['Pacific Rim'] + [alliance['pac'] for alliance in generaldata])       writer.writerow(['Alignments'])     writer.writerow(['West'] + [alliance['west'] for alliance in generaldata])     writer.writerow(['Neutral'] + [alliance['non'] for alliance in generaldata])     writer.writerow(['East'] + [alliance['east'] for alliance in generaldata])       writer.writerow(['Political Systems'])     writer.writerow(['Liberal Democracy'] + [alliance['libdem'] for alliance in generaldata])     writer.writerow(['Authoritarian Democracy'] + [alliance['authdem'] for alliance in generaldata])     writer.writerow(['One Party Rule'] + [alliance['opr'] for alliance in generaldata])     writer.writerow(['Military Junta'] + [alliance['junta'] for alliance in generaldata])     writer.writerow(['Dictatorship'] + [alliance['dictat'] for alliance in generaldata])       writer.writerow(['Economics Systems'])     writer.writerow(['Free Market'] + [alliance['free'] for alliance in generaldata])     writer.writerow(['Mixed Economy'] + [alliance['mixed'] for alliance in generaldata])     writer.writerow(['Central Planning'] + [alliance['command'] for alliance in generaldata])       writer.writerow(['Approvals'])     writer.writerow(['Worshiped as a God'] + [alliance['waag'] for alliance in generaldata])     writer.writerow(['Adored'] + [alliance['adored'] for alliance in generaldata])     writer.writerow(['Loved'] + [alliance['loved'] for alliance in generaldata])     writer.writerow(['Liked'] + [alliance['liked'] for alliance in generaldata])     writer.writerow(['Decent'] + [alliance['decent'] for alliance in generaldata])     writer.writerow(['Middling'] + [alliance['middling'] for alliance in generaldata])     writer.writerow(['Disliked'] + [alliance['disliked'] for alliance in generaldata])     writer.writerow(['Hated'] + [alliance['hated'] for alliance in generaldata])     writer.writerow(['Despised'] + [alliance['despised'] for alliance in generaldata])     writer.writerow(['Enemy of the People'] + [alliance['eop'] for alliance in generaldata])       writer.writerow(['Stabilities'])     writer.writerow(['Unsinkable'] + [alliance['unsink'] for alliance in generaldata])     writer.writerow(['Entrenched'] + [alliance['entren'] for alliance in generaldata])     writer.writerow(['Very Stable'] + [alliance['vstable'] for alliance in generaldata])     writer.writerow(['Quiet'] + [alliance['quiet'] for alliance in generaldata])     writer.writerow(['Calm'] + [alliance['calm'] for alliance in generaldata])     writer.writerow(['Growing Tensions'] + [alliance['tensions'] for alliance in generaldata])     writer.writerow(['Chaotic'] + [alliance['chaotic'] for alliance in generaldata])     writer.writerow(['Rioting'] + [alliance['rioting'] for alliance in generaldata])     writer.writerow(['Mass Protests'] + [alliance['protests'] for alliance in generaldata])     writer.writerow(['Brink of Collapse'] + [alliance['collapse'] for alliance in generaldata])       writer.writerow(['Rebels'])     writer.writerow(['None'] + [alliance['norebels'] for alliance in generaldata])     writer.writerow(['Scattered Terrorists'] + [alliance['terror'] for alliance in generaldata])     writer.writerow(['Guerrillas'] + [alliance['guerrilla'] for alliance in generaldata])     writer.writerow(['Open Rebellion'] + [alliance['rebellion'] for alliance in generaldata])     writer.writerow(['Civil War'] + [alliance['civil'] for alliance in generaldata])       writer.writerow(['Qualities of Life'])     writer.writerow(['Developed'] + [alliance['developed'] for alliance in generaldata])     writer.writerow(['Good'] + [alliance['good'] for alliance in generaldata])     writer.writerow(['Decent'] + [alliance['decent'] for alliance in generaldata])     writer.writerow(['Above Average'] + [alliance['above'] for alliance in generaldata])     writer.writerow(['Average'] + [alliance['average'] for alliance in generaldata])     writer.writerow(['Poor'] + [alliance['poorqol'] for alliance in generaldata])     writer.writerow(['Impoverished'] + [alliance['impov'] for alliance in generaldata])     writer.writerow(['Desperate'] + [alliance['desp'] for alliance in generaldata])     writer.writerow(['Disastrous'] + [alliance['disast'] for alliance in generaldata])     writer.writerow(['Humanitarian Crisis'] + [alliance['crisis'] for alliance in generaldata])       writer.writerow(['Reputations'])     writer.writerow(['Gandhi-Like'] + [alliance['gandhi'] for alliance in generaldata])     writer.writerow(['Angelic'] + [alliance['angelic'] for alliance in generaldata])     writer.writerow(['Nice'] + [alliance['nice'] for alliance in generaldata])     writer.writerow(['Good'] + [alliance['good'] for alliance in generaldata])     writer.writerow(['Normal'] + [alliance['normal'] for alliance in generaldata])     writer.writerow(['Questionable'] + [alliance['quest'] for alliance in generaldata])     writer.writerow(['Isolated'] + [alliance['isolated'] for alliance in generaldata])     writer.writerow(['Pariah'] + [alliance['pariah'] for alliance in generaldata])     writer.writerow(['Mad Dog'] + [alliance['maddog'] for alliance in generaldata])     writer.writerow(['Axis of Evil'] + [alliance['aoe'] for alliance in generaldata])       writer.writerow(['Tech Levels'])     writer.writerow(['Advanced'] + [alliance['advanced'] for alliance in generaldata])     writer.writerow(['Persian'] + [alliance['persian'] for alliance in generaldata])     writer.writerow(['Almost Modern'] + [alliance['almost'] for alliance in generaldata])     writer.writerow(['Vietnam'] + [alliance['vietnam'] for alliance in generaldata])     writer.writerow(['Korean'] + [alliance['korean'] for alliance in generaldata])     writer.writerow(['World War II'] + [alliance['second'] for alliance in generaldata])     writer.writerow(['World War I'] + [alliance['first'] for alliance in generaldata])     writer.writerow(['19th Century'] + [alliance['finest'] for alliance in generaldata])     writer.writerow(['Stone Age'] + [alliance['stone'] for alliance in generaldata])       writer.writerow(['Airforces'])     writer.writerow(['Very Powerful'] + [alliance['vpowerful'] for alliance in generaldata])     writer.writerow(['Powerful'] + [alliance['powerful'] for alliance in generaldata])     writer.writerow(['Large'] + [alliance['large'] for alliance in generaldata])     writer.writerow(['Somewhat Large'] + [alliance['somelarge'] for alliance in generaldata])     writer.writerow(['Mediocre'] + [alliance['mediocre'] for alliance in generaldata])     writer.writerow(['Meagre'] + [alliance['meagre'] for alliance in generaldata])     writer.writerow(['Small'] + [alliance['small'] for alliance in generaldata])     writer.writerow(['None'] + [alliance['noair'] for alliance in generaldata])       writer.writerow(['Training Levels'])     writer.writerow(['Elite'] + [alliance['elite'] for alliance in generaldata])     writer.writerow(['Good'] + [alliance['good'] for alliance in generaldata])     writer.writerow(['Standard'] + [alliance['standard'] for alliance in generaldata])     writer.writerow(['Poor'] + [alliance['poortr'] for alliance in generaldata])     writer.writerow(['Rabble'] + [alliance['rabble'] for alliance in generaldata])       writer.writerow(['Manpower Levels'])     writer.writerow(['Untapped'] + [alliance['untapped'] for alliance in generaldata])     writer.writerow(['Plentiful'] + [alliance['plentiful'] for alliance in generaldata])     writer.writerow(['Halved'] + [alliance['halved'] for alliance in generaldata])     writer.writerow(['Low'] + [alliance['low'] for alliance in generaldata])     writer.writerow(['Near Depletion'] + [alliance['neardep'] for alliance in generaldata])     writer.writerow(['Depleted'] + [alliance['depleted'] for alliance in generaldata])   with open('troopdata,%s.csv' % datetime.datetime.utcnow().strftime('%d-%m,%H-%M-%S'), 'w') as csvfile:     writer = csv.writer(csvfile, quoting=csv.QUOTE_MINIMAL)     writer.writerow(['Name'] + [name for name in names])       writer.writerow(['Total troops'] + [alliance['troops'] for alliance in troopdata])     writer.writerow(['Average troops'] + [alliance['avgtroops'] for alliance in troopdata])       writer.writerow(['Regions'])     writer.writerow(['Mesoamerica'] + [alliance['mam'] for alliance in troopdata])     writer.writerow(['Caribbean'] + [alliance['car'] for alliance in troopdata])     writer.writerow(['Gran Colombia'] + [alliance['gra'] for alliance in troopdata])     writer.writerow(['Amazonia'] + [alliance['ama'] for alliance in troopdata])     writer.writerow(['Southern Cone'] + [alliance['sco'] for alliance in troopdata])     writer.writerow(['Southern Africa'] + [alliance['saf'] for alliance in troopdata])     writer.writerow(['Congo'] + [alliance['con'] for alliance in troopdata])     writer.writerow(['East Africa'] + [alliance['eaf'] for alliance in troopdata])     writer.writerow(['Guinea'] + [alliance['gui'] for alliance in troopdata])     writer.writerow(['West Africa'] + [alliance['waf'] for alliance in troopdata])     writer.writerow(['Atlas'] + [alliance['atl'] for alliance in troopdata])     writer.writerow(['Egypt'] + [alliance['egy'] for alliance in troopdata])     writer.writerow(['Arabia'] + [alliance['ara'] for alliance in troopdata])     writer.writerow(['Mesopotamia'] + [alliance['mpo'] for alliance in troopdata])     writer.writerow(['Persia'] + [alliance['per'] for alliance in troopdata])     writer.writerow(['The Subcontinent'] + [alliance['sub'] for alliance in troopdata])     writer.writerow(['China'] + [alliance['chi'] for alliance in troopdata])     writer.writerow(['Indochina'] + [alliance['ind'] for alliance in troopdata])     writer.writerow(['East Indies'] + [alliance['ein'] for alliance in troopdata])     writer.writerow(['Pacific Rim'] + [alliance['pac'] for alliance in troopdata])   with open('uraniumdata,%s.csv' % datetime.datetime.utcnow().strftime('%d-%m,%H-%M-%S'), 'w') as csvfile:     writer = csv.writer(csvfile, quoting=csv.QUOTE_MINIMAL)       writer.writerow(['Name'] + [nation['name'] for nation in uraniumlist])     writer.writerow(['ID'] + [nation['id'] for nation in uraniumlist])     writer.writerow(['Uranium'] + [nation['uranium'] for nation in uraniumlist])   print "Done."