在Python中汇总txt文件的数量

时间:2014-04-02 09:36:56

标签: python python-2.7

我需要一个打开txt文件并在其中添加所有数字的函数。

我在线研究后尝试了一些不同的功能,但到目前为止还没有。

def sum_this(txt):
    """
    >>> sum_digits("numbers.txt")
    1000
    """
    fileop = open(txt)
    red = fileop.read()
    nums = red.split()
    sums = int(nums)
    total = sum(sums)
    return total

" numbers.txt"包含:

500
200
150
150

数字没有点,它们在不同的行中

需要使用python-2.7

上面的代码需要改变什么才能起作用?

4 个答案:

答案 0 :(得分:2)

紧凑(并且安全 - 您没有关闭文件)方式:

def sum_this(txt):
    with open(txt, "rb") as f:
        return sum(int(num) for num in f.read().split())

答案 1 :(得分:1)

nums是一个列表,因此您需要在每个元素上调用int,如下所示:

sums = map(int, nums)

答案 2 :(得分:0)

这应该有效

 sum = 0;
 fileop = open(txt, 'r');
 A = readlines(fileop);
 for i in range(0, len(A)):
     sum = sum + A[i]
 return sum

答案 3 :(得分:0)

这是一个很好的一个班轮:

def sum_this(text_file):
    return sum(map(int, (open(text_file,'r').read().split('\n')))
end

您基本上是在open部分阅读它,然后read()将其读入字符串并根据nextLine属性进行拆分。我有python-2.7,它适用于我。