donation.py 1.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647
  1. """Calculate donations"""
  2. import re
  3. RESOURCES = {
  4. 'bbl': {},
  5. 'kg': {},
  6. 'pcs': {},
  7. 'G': {},
  8. 'g': {},
  9. '$': {},
  10. }
  11. def sum_donations():
  12. """Count total donations"""
  13. with open('donation.txt', 'r') as file:
  14. for line in file:
  15. try:
  16. donation = re.search(r'\d.*?(bbl|kg|pcs|G|g|\$)', line).group(0)
  17. player = re.search(r'.*?\s\t', line).group(0).strip()
  18. print(donation)
  19. amount, resource = donation.split(' ')
  20. amount = int(amount.replace('.', ''))
  21. if player not in RESOURCES[resource]:
  22. RESOURCES[resource][player] = 0
  23. RESOURCES[resource][player] += amount
  24. except Exception as exception:
  25. print('exception')
  26. print('%s %s' % (line, exception))
  27. for resource, players in RESOURCES.items():
  28. print(resource)
  29. count = 1
  30. for player in sorted(players, key=players.get, reverse=True):
  31. print('%12d %s' % (players[player], player))
  32. if count >= 10:
  33. break;
  34. count += 1
  35. if __name__ == '__main__':
  36. sum_donations()