如何将文本文件中的这些数字一起添加?

时间:2015-11-16 04:50:18

标签: python list text

我有一个以不同行组织的数字文件。

我从今天早上8点起就开始研究这个问题了,我一直遇到同样的两个问题:

  1. 当我尝试逐行拆分文件时,我无法进行任何数学运算,因为它是一个列表
  2. 当我不拆分时,没有任何事情可以发生,因为整个文件都有'\ n',因为有多行。
  3. 该文件如下所示:

    6 7 3 7 35 677
    202 394 23 
    
    595 2 30 9
    39 3 5 1 99
    

    我基本上想要将每行的所有数字加起来。所以我想一起添加6,7,3,7,35,677等等。但两个“段落”中的线条需要保持在一起。

    这对我来说最有意义,但它不起作用。

    filename = input('Enter filename: ')
    f = open(filename, 'r')
    data = f.read().split()
    my = (int(data[0]))
    text = (int(data[1]))
    sum(my,text)
    

    我不知道发生了什么。我知道我需要拆分('\ n')然后我不能做任何数学运算。我也无法转换为int。有什么建议吗?

4 个答案:

答案 0 :(得分:1)

with open("file.txt", "r") as objFile:
    lsNos = objFile.readLines()

total = 0
for strLine in lsNos:
   if strLine.strip():
      lsNos = strLine.split(" ")
      for No in lsNos:
        if No.strip():
          total += int(No.strip())

答案 1 :(得分:0)

分手后,您需要转换"文字"输入str或Unicode为整数,浮点数或小数。

答案 2 :(得分:0)

from itertools import imap


with open("your_file") as inp:
    for numbers in (imap(int, line.strip().split()) for line in inp):
            print(sum(numbers)) if numbers else print()

如果您使用的是Python 3,请删除导入行,并将imap替换为map

答案 3 :(得分:0)

这些方面的某些内容可能有所帮助。

filename = input('Enter filename: ')

with open(filename) as f:
    for line in f:
        # split line into a list of numbers (as strings)
        line = line.split()

        if not line:
            # If the line is empty, print a blank line
            print()
        else:
            # otherwise get the total for the line
            total = 0
            for n in line:
                total += int(n)

            print(total)