Как объяснил gnibbler, это может произойти, если файл (в данном случае «history.dat») уже существует, но пуст.
Тест запустил его в Python v3 IDLE, используя:
import os
def getAppHistory():
path = "C:/test/history.dat"
if os.path.exists(path):
hist_file = open(path, "r")
hist_data = hist_file.read()
else:
hist_file = open(path, "w")
hist_data = "[200, \"Empty\", \"You have no device history!\", \"self.Void\"]"
hist_file.write(hist_data)
print(eval(hist_data))
hist_file.close()
Отлично пробежал с первого раза; однако, когда я вручную удалил строки и сделал файл пустым, он выдал ту же ошибку, что и вы. Опять же, как указал gnibbler, сначала посмотрите, какие недостатки и / или возможные недостатки "eval" имеют в вашем проекте / работе.