Как мне прочитать числа из текстового файла на python?

#python

Вопрос:

Я новичок в python, и мне нужно прочитать, а затем добавить числа из файла в одну сумму, а затем распечатать их все. Форматирование не является проблемой, но эти цифры не отображаются в каждой строке, а между некоторыми из них есть пустые строки и пробелы. Как я могу приказать интерпретатору видеть строки, которые он обычно распознает как строки, как целые числа? Вот файл, а вот мой код.

 line = eval(infile.read())
    while infile != "":
        sum = sum   int(line)
        count = count   1
        line = eval(infile.read())
    print("the sum of these numbers is", sum)
 

цифры >>>:

 111
10 20 30 40 50 60 70
99 98 97
1
2
33
44 55
66 77 88 99 101

123
456
 

Ответ №1:

По сути, вам нужно сделать следующее:

  1. Вам нужна переменная, в которой вы будете хранить общую сумму чисел в вашем файле
  2. Вы должны использовать open для того, чтобы открыть файл в with инструкции, я предполагаю, что ваш файл называется file.txt .
  3. Вам нужно выполнить итерацию объекта файла строка за строкой.
  4. Вам нужно преобразовать текущую строку в список строк, в котором каждая строка элемента представляет число. Предполагается, что все элементы в файле являются целыми числами и разделены пробелами.
  5. Вам нужно преобразовать этот список строк в список целых чисел
  6. Вам нужно суммировать элементы в списке шага 5. и добавить результат к итогу
 total = 0 # variable to store total sum

with open('file.txt') as file_object: # open file in a with statement
    for line in file_object:  # iterate line by line
        numbers = [int(e) for e in line.split()] # split line and convert string elements into int
        total  = sum(numbers) # store sum of current line

print(f"the sum of these numbers is {total}")
 

Ответ №2:

 import re

with open(filename, "r")as f:
    l = []
    for line in f:
        l.extend(re.findall(r"d ", line.strip()))
    print("the sum of these numbers is", sum(map(int, l)))
 

Ответ №3:

Вы можете просто повторить каждую строку файла и добавить числа в наш total .

 total = 0
with open("input.txt") as file:
    for line in file.readlines():
        total  = sum(map(int, line.split()))

print(total)