Python ошибки с записью в файл txt
У меня есть функция:
def writer_file(num):
stat = {'2': 0, '3': 0, '4': 0, '5': 0, '6': 0, '7': 0, '8': 0}
stat[str(num)] = 1
f = open('new.txt', 'r')
file_stat = literal_eval(f.read())
z = {k: stat[k] + file_stat[k] for k in stat}
f.close()
w = open('new.txt', 'w')
w.write(str(z))
w.close()
return True
Что должна делать функция: Она получает число(int) - num, Дальше записывает num в словарь stat, Следующий шаг - взять из файла 'text.new' старый словарь(строку, которую потом превратит в словарь), И просуммировать значения ключей нового словаря stat со старым взятым из файла 'text.new' В финале - записать суму опять в файл.
Ошибка по типу:
Added new number Traceback (most recent call last): File "D:\parsing_csgorun\main.py", line 87, in writer_file(2) File "D:\parsing_csgorun\main.py", line 21, in writer_file file_stat = literal_eval(f.read()) File "C:\Users\vital\AppData\Local\Programs\Python\Python39\lib\ast.py", line 62, in literal_eval node_or_string = parse(node_or_string, mode='eval') File "C:\Users\vital\AppData\Local\Programs\Python\Python39\lib\ast.py", line 50, in parse return compile(source, filename, mode, flags, File "", line 0
SyntaxError: unexpected EOF while parsing
Update
А что вы первоначально записали в файл? Забыл, вот:
{'2': 0, '3': 0, '4': 0, '5': 0, '6': 0, '7': 0, '8': 0}
Ответы (1 шт):
А что вы первоначально записали в файл? У меня всё работает, если не забыть записать в файл первоначальное состояние:
z = {'2': 0, '3': 0, '4': 0, '5': 0, '6': 0, '7': 0, '8': 0}
w = open('new.txt', 'w')
w.write(str(z))
w.close()
writer_file(6)
writer_file(2)
writer_file(6)
Вывод по команде !cat new.txt:
{'2': 1, '3': 0, '4': 0, '5': 0, '6': 2, '7': 0, '8': 0}
Если же у вас первоначальный файл просто пустой, то нужно будет несколько поменять логику работы программы, чтобы обойти этап чтения в функции при первом вызове.