Python用于计算文本fi中的逗号

2024-09-30 14:23:39 发布

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

我试着计算文本文件中条目之间的逗号,这样我就可以用逗号的数量来计算平均值。不幸的是,它的commacount为零。在

file = open("inputs.txt", "r")

    line = file.read()

    commaCount = 0

    for line in file:
        for char in line:
            if char == ',':
                commaCount+=1

    commacount2 = (multiply(commaCount,2))

    total = sum(int(num) for num in line.strip(',').split(','))

    print(commaCount)
    print(commacount2)

    print("Your average for all inputs is" + str(divide(total,commacount2)))

Tags: infor数量line条目numfiletotal
2条回答

这应该可以帮助你开始,它应该给你一个文本文件中逗号的数量,如果你使用一个循环,你可以使用它来处理你所有的文件。在

with open('inputs.txt', 'r') as f:
    numCommas = f.read().count(',')
    print numCommas

您已经用line = file.read()使用了文件迭代器,因此您没有迭代任何内容。您应该忘记read,然后迭代file对象本身:

with  open("inputs.txt", "r") as f:
    count = sum(line.count(",") for line in f)
    # f.seek(0)
    # use the lines again

{cd3>如果你不想让这个指针回到原点。在

一旦您调用.read或.readlines,您就将指针移到文件的末尾,因此除非您f.seek(0)您无法再次遍历所有行,否则您基本上是在执行以下操作:

^{pr2}$

如果您有一个逗号分隔的整数文件,您可以使用csv模块,行的长度将为您提供如何可能元素的计数,并将字符串映射到整数,并对所有行值求和:

import csv
with open("inputs.txt") as f:
    r = csv.reader(f) # create rows split on commas
    sm = 0
    com_count = 0
    for row in r:
        com_count += len(row) # "1,2,3"
        sm += sum(map(int,row))

实际上应该是sm += sum(map(int,row)) -1来匹配逗号计数,但是如果您想要元素的数量,那么计算逗号不是正确的方法"1,2,3".count(",") == 2,但是有三个元素。在

相关问题 更多 >