Python:如何从文件中计算数字的总和?

时间:2018-08-17 19:28:57

标签: python arrays file calculation

如何从.txt文件计算数字总和 文件中的数据格式为:

7
8
14
18
16
8
23
...

我从文件中读取了数据,并将每个行值分配给变量“ line”,但我想得到类似以下内容的信息:result = 7+8+14+...

f = open('data.txt', 'r')   #LOOP AND READ DATA FROM THE FILE
    for line in f:
        code

7 个答案:

答案 0 :(得分:5)

这是我现在能想到的最紧凑的代码: (最后更新为处理n,谢谢@JonClements!)

with open('file.txt', 'r') as fin:
    ans = sum(int(line) for line in fin if line.strip().isnumeric())

对于您拥有的代码结构,您也可以这样做:

f = open('data.txt', 'r')
ans = 0
for line in f:
    try:
        ans += int(line.strip())
    except ValueError:
        pass

编辑: 由于已经消除了与“ n”的混淆,因此第一个示例可以很简单

with open('file.txt', 'r') as fin:
    ans = sum(int(line) for line in fin)

甚至是这种单线:

ans = sum(int(line) for line in open('file.txt', 'r'))

但是文件处理存在一定风险,因此不建议这样做。

答案 1 :(得分:2)

lista = os.listdir('C:///Users/Quasar/Desktop/Software/')
my_st = os.stat('C:///  Users/Quasar/Desktop/Software/')
list = glob.iglob('C:///Users/Quasar/Desktop/Software/*')
print(my_st.st_mtime)
latest_file = min(list, key=os.path.getctime)   
return 

这基本上只是创建一个数字列表,其中每一行都是列表中的新条目。然后显示列表的总和。

答案 2 :(得分:2)

一个简单的解决方案是,根据steven和AChamp的建议,它也将在每行的结尾处处理 \ n

with open("abc.txt","r")as f:
    print(sum(int(x) for x in f))

答案 3 :(得分:2)

保持简单:

with open('data.txt', 'r') as f:
    result = sum(map(int, f))

int映射到f中的每一行,然后sum()累加结果整数。

答案 4 :(得分:1)

这是一个解决方案(考虑所有行都是数字):

def calculate_number_in_file(file_path):
    with open(file_path, 'r') as f:
        return sum([int(number.strip()) for number in f.readlines()])

答案 5 :(得分:1)

在智能手机上...

with open(filepath) as f:
    lines = f.readlines()
numbers = [int(line) for line in lines]
print(sum(numbers))

答案 6 :(得分:1)

with open ('data.txt', 'r') as f:
    data = f.readlines()

sum = 0
for line in data:
    sum += int(line.strip())

print(sum)