Работа с файлами. Подскажите как убрать пустую строку в readline

Рейтинг: -1Ответов: 2Опубликовано: 09.01.2023

Есть текстовый файл:

Alex Korp,3000
Nikita Borisenko,2000
Sitarama Raju,1000

Мне нужно собрать эти числа и сплюсовать. Но у меня вылазит ошибка из-за того что когда я читаю строки, у меня в конце появляется пустая строка. Ошибка заключается в том что я пытаюсь преобразовать эту пустую строку в число. Но я не до конца понимаю откуда она появляется. Объясните пожалуйста как эту строку можно не брать. Я решил находить запятую с помощью метода find и брать все элементы до конца строки, так как знаю что там числа. Также если просто вывести print(num_index) то можно увидеть эту пустую строку в конце.

from pathlib import Path



def total_salary(path):
    file_salaries = open(path, 'r')
    sum_of_salaries = 0
    while True:
        person_info = file_salaries.readline()
        num_index = person_info[person_info.find(',') + 1:]
        sum_of_salaries += int(num_index)                 
        if not person_info:
            break
    print(sum_of_salaries)


file_salaries.close()


file_with_salaries_path = Path('C:\Projects\Test_Project\Salaries.txt')
total_salary(file_with_salaries_path)

Ответы

▲ 2Принят

Вам нужно проверять строки, которые читаете из файла

while True:
    line = file.readline()
    if not line:
        break
    # вся остальная логика 

или можно проверять строчку ещё так

while (y := file.readline()):
    # вся остальная логика
▲ 3

v1.txt

Alex Korp,3000
Nikita Borisenko,2000
Sitarama Raju,1000

Код
with open('v1.txt', 'r', encoding='utf-8') as file:
    print(
        sum(
            map(
                int,
                [
                    i
                    for j in file.readlines()
                    for i in j.split(',')
                ][1::2]
            )
        )
    )
# 6000