<p>为此,您可以利用<a href="https://docs.python.org/3/library/csv.html" rel="nofollow noreferrer">csv</a>模块。将文件中的数据读入字典-使用名称作为键,并将值存储在此键下的列表中。使用<a href="https://docs.python.org/3/library/collections.html#collections.defaultdict" rel="nofollow noreferrer">collections.defaultdict</a>最简单:</p>
<p>写入数据文件:</p>
<pre><code>name = "f.txt"
with open(name, "w") as f:
f.write("""adam;10000
bartek;1000
tomasz;5000
adam;1000
bartek;3000""" )
</code></pre>
<p>过程数据文件:</p>
<pre><code>import csv # https://docs.python.org/3/library/csv.html
from collections import defaultdict
# read data into dictionary
results = defaultdict(list)
with open(name, newline='') as f:
reader = csv.reader(f, delimiter=";")
for line in reader:
if line:
results[line[0]].append(int(line[1]))
print(results)
# write data from dictionary to file
with open("new" + name, "w", newline="") as f:
writer = csv.writer(f, delimiter=";")
for key in results:
writer.writerow([key, sum(results[key]), len(results[key])])
# read file and print it
print(open("new"+name).read())
</code></pre>
<p>输出:</p>
<pre><code># read data
defaultdict(<class 'list'>, {'adam': [10000, 1000],
'bartek': [1000, 3000],
'tomasz': [5000]})
# written results
adam;11000;2
bartek;4000;2
tomasz;5000;1
</code></pre>