# functions ------------------------------------------------------------------ def display_inventory(inv_type, chunky, skybar, valomilk, zagnut): print() print(inv_type.capitalize() + ' inventory') print('-----------------') print('{:8s} {:8d}'.format('Chunky', chunky)) print('{:8s} {:8d}'.format('Skybar', skybar)) print('{:8s} {:8d}'.format('Valomilk', valomilk)) print('{:8s} {:8d}'.format('zagnut', zagnut)) print('-----------------') # main algorithm ------------------------------------------------------------- # -------------- read names of data files initial_inventory = input('Name of file with the week\'s initial inventory: ') transactions = input('Name of file with the week\'s transactions : ') updated_inventory = input('Name of file with the week\'s updated inventory: ') # -------------- read beginning inventory file initial_inventory_file = open(initial_inventory, 'r') for line in initial_inventory_file: bar,count = line.strip().lower().split() if bar == 'chunky': chunky = int(count) elif bar == 'skybar': skybar = int(count) elif bar == 'valomilk': valomilk = int(count) else: # bar == 'zagnut': zagnut = int(count) initial_inventory_file.close() # -------------- display beginning inventory display_inventory('Initial', chunky, skybar, valomilk, zagnut) # -------------- process week's transactions change_in_chunky = 0 change_in_skybar = 0 change_in_valomilk = 0 change_in_zagnut = 0 total_sales = 0 total_purchases = 0 transaction_file = open(transactions, 'r') for line in transaction_file: tran_type, bar, count = line.strip().split() tran_type = tran_type.lower() bar = bar.lower() count = int(count) if tran_type == 'sale': total_sales += 1 count = -count else: total_purchases += 1 if bar == 'chunky': change_in_chunky += count elif bar == 'skybar': change_in_skybar += count elif bar == 'valomilk': change_in_valomilk += count else: # bar == 'zagnut': change_in_zagnut += count transaction_file.close() # -------------- display the number of transactions processed print() print('Total sales :', total_sales) print('Total purchases :', total_purchases) # -------------- update inventory chunky += change_in_chunky skybar += change_in_skybar valomilk += change_in_valomilk zagnut += change_in_zagnut # -------------- display ending inventory display_inventory('Closing', chunky, skybar, valomilk, zagnut) # -------------- write ending inventory file ending_inventory_file = open(updated_inventory, 'w') print('chunky', chunky, file=ending_inventory_file) print('skybar', skybar, file=ending_inventory_file) print('valomilk', valomilk, file=ending_inventory_file) print('zagnut', zagnut, file=ending_inventory_file) ending_inventory_file.close()