Работа с файлами. Подскажите как убрать пустую строку в readline
Есть текстовый файл:
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 шт):
Автор решения: George
→ Ссылка
Вам нужно проверять строки, которые читаете из файла
while True:
line = file.readline()
if not line:
break
# вся остальная логика
или можно проверять строчку ещё так
while (y := file.readline()):
# вся остальная логика
Автор решения: Namerek
→ Ссылка
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