Программа выводит ошибку из-за значения "", которое невозможно преобразовать в int
...хотя я сделала так, чтобы в том файле были только цифры
Мой код:
#подготовка
import os
file_all_marks_write = open("all_marks.txt", "a")
file_sum_write = open("sum.txt", "w")
file_mark_write = open("mark.txt", "w")
file_all_marks_read = open("all_marks.txt", "r")
file_sum_read = open("sum.txt", "r")
file_mark_read = open("mark.txt", "r")
#максимально возможная оцека и минимально возможная оценка
maximal = int(input('Введите максимально возможную оценку: '))
minimal = int(input('Введите минимально возможную оценку: '))
while True:
#ввод новой оценки
new_mark = int(input('Введите новую оценку: '))
#соответствует ли оценка заданным ранее критериям
if new_mark > maximal and new_mark < minimal:
print('Error')
break
#обновление суммы всех оценок (для итоговой оценки)
if(file_sum_read.read() == ""):
file_sum_write.write(str(new_mark))
else:
file_sum_write.write(str(int(file_sum_read.read()) + new_mark))
#обновление файла, где хранятся все оценки
file_all_marks_write.write(str(new_mark))
file_all_marks_write.write(" ")
#подсчёт итоговой оценки
statinfo = os.stat('all_marks.txt')
file_mark_write.write(str(round(int(file_sum_read.read()) / (statinfo.st_size / 2))))
#вывод всех оценок и итоговой оценки на экран
i = 0
for x in range(len(all_marks)):
print(file_all_marks_read.read())
i += 1
print('---')
print(file_mark_read.read())
Текст ошибки:
Traceback (most recent call last):
File "C:/Users/dasha/Documents/dnevnik/main.py", line 39, in <module>
file_mark_write.write(str(round(int(file_sum_read.read()) / (statinfo.st_size / 2))))
ValueError: invalid literal for int() with base 10: ''