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

时间:2015-06-29 22:15:42

标签: python

我正在尝试计算文本文件中条目之间的逗号,以便我可以使用逗号数来查找平均值的条目数。不幸的是,它出现了零的commacount。

let rx = "\\.[0-9]+\\."

2 个答案:

答案 0 :(得分:3)

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

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

如果你想让指针回到开头再次迭代,你可以f.seek(0),但我不确定total = sum(int(num) for num in line.strip(',').split(','))正在做什么。

一旦你调用.read或.readlines,你就已经将指针移动到文件的末尾,所以除非f.seek(0)你不能再遍历所有行,否则你基本上就是这样做了:

In [8]: iterator = iter((1,2,3))
In [9]: list(iterator) # consume
Out[9]: [1, 2, 3]   
In [10]: list(iterator) # empty
Out[10]: [] 
In [11]: list(iterator).count(1) 
Out[11]: 0

如果你有一个带整数的逗号分隔文件你可以使用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,但有三个元素。

答案 1 :(得分:1)

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

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