1234567891011121314151617181920212223242526272829303132333435363738394041424344454647 |
- """Calculate donations"""
- import re
- RESOURCES = {
- 'bbl': {},
- 'kg': {},
- 'pcs': {},
- 'G': {},
- 'g': {},
- '$': {},
- }
- def sum_donations():
- """Count total donations"""
- with open('donation.txt', 'r') as file:
- for line in file:
- try:
- donation = re.search(r'\d.*?(bbl|kg|pcs|G|g|\$)', line).group(0)
- player = re.search(r'.*?\s\t', line).group(0).strip()
- print(donation)
- amount, resource = donation.split(' ')
- amount = int(amount.replace('.', ''))
- if player not in RESOURCES[resource]:
- RESOURCES[resource][player] = 0
- RESOURCES[resource][player] += amount
- except Exception as exception:
- print('exception')
- print('%s %s' % (line, exception))
- for resource, players in RESOURCES.items():
- print(resource)
- count = 1
- for player in sorted(players, key=players.get, reverse=True):
- print('%12d %s' % (players[player], player))
- if count >= 10:
- break;
- count += 1
- if __name__ == '__main__':
- sum_donations()
|