擅长:python、mysql、java
<p>看起来您使用的是一个旧的python,但这段代码在3.6中运行得很好:</p>
<pre><code>def main():
file_name = input("Input file name: ")
amount_by_category = process_file(file_name)
if amount_by_category:
print ("Totals:")
for key in amount_by_category:
print ("{}: $ {}".format(key, amount_by_category.get(key)))
def process_file(file_name):
infile = open(file_name, 'r')
# a dictionary mapping category to total amount for that category
amount_by_category = {}
for line in infile:
fields = line.split(';')
if len(fields) != 4:
raise Exception('Expected 4 fields but found %s' % len(fields))
value = float(fields[2])
category = fields[1]
if not category in amount_by_category:
amount_by_category[category] = 0.0
amount_by_category[category] += value
return amount_by_category
main()
</code></pre>