Python3.X将.txt文件中的类似行组合在一起

2024-09-22 16:37:08 发布

您现在位置:Python中文网/ 问答频道 /正文

关于将文本文件中的值组合成单个变量并打印它的问题。你知道吗

我可以举一个.txt文件的例子,例如:

School, 234
School, 543

我想知道把这两个学校合并成一个变量“学校”的必要步骤,这个变量的值是777。你知道吗

我知道我们需要打开.txt文件进行读取,然后用.split(“,”)方法将其拆分。你知道吗

代码示例:

schoolPopulation = open("SchoolPopulation.txt", "r")
for line in schoolPopulation:
    line = line.split(",")

有谁能告诉我如何解决这个问题吗?你知道吗


Tags: 文件方法代码txt示例line步骤open
3条回答

像这样的?你知道吗

schoolPopulation = open("SchoolPopulation.txt", "r")
results = {}
for line in schoolPopulation:
    parts = line.split(",")
    name = parts[0].lower()
    val = int(parts[1])
    if name in results:
        results[name] += val
    else:
        results[name] = val
print(results)
schoolPopulation.close()

您还可以使用defaultdictwith关键字。你知道吗

from collections import defaultdict

with open("SchoolPopulation.txt", "r") as schoolPopulation:
    results = defaultdict(int)
    for line in schoolPopulation:
        parts = line.split(",")
        name = parts[0].lower()
        val = int(parts[1])
        results[name] += val

print(results)

如果你想很好地展示你的结果,你可以做如下的事情

for key in results:
    print("%s: %d" % (key, results[key]))
school = population = prev = ''
pop_count = 0
with open('SchoolPopulation.txt', 'r') as infile:
     for line in infile:
          line = line.split(',')
          school = line[0]
          population = int(line[1])
          if school == prev or prev == '':
               pop_count += line[1]
          else:
               pass #do something else here
          prev = school

Python有丰富的标准库,您可以在其中找到许多典型任务的类。Counter是您在当前情况下所需要的:

from collections import Counter
c = Counter()


with open('SchoolPopulation.txt', 'r') as fh:
    for line in fh:
        name, val = line.split(',')
        c[name] += int(val)

print(c)

相关问题 更多 >