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

Mur*_*dam 3 python arrays file calculation

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

7
8
14
18
16
8
23
...
Run Code Online (Sandbox Code Playgroud)

我从文件中读取数据并将每个行值分配给'line'可变,但我希望得到类似的东西: result = 7+8+14+...

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

060*_*002 5

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

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

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

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

编辑: 由于与'n'的混淆已被清除,第一个例子可以很简单

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

甚至这个单线:

ans = sum(int(line) for line in open('file.txt', 'r'))
Run Code Online (Sandbox Code Playgroud)

但文件处理存在一定的风险,因此不强烈建议.

  • 你也不需要.strip因为int不会考虑前导/尾随空格...你可能只能使用sum(int(line)for fin in line if line.strip() .isdigit())(或.isnumeric()取决于) (2认同)