В моем коде python я открываю текстовый файл, чтобы добавить некоторые числа, считанные из полей ввода Tkinter (называемых здесь numeriaccount). Затем я вызываю другую функцию, которая читает этот файл и выполняет другие действия:
with open("accounts.txt", "w+") as f: # I open the txt file
for i in range(len(self.numeriaccount)): # I scan through the entry fields
t = self.numeriaccount[i].get().strip()
# I write the entry field data into the txt file
if (i == len(self.numeriaccount) - 1 ):
f.write( t )
else:
f.write( t + "\n" )
self.check_something() # this function reads the same file and performs other actions
Проблема только с exe-файлом, созданным pyinstaller, НЕ, если я нормально работаю с python filename.py:
файл не обновляется нормально, а вторая функция считывает неправильные символы и выдает исключение. Если я открою текстовый файл после запуска этого скрипта через python filename.py, я могу увидеть содержимое файла с номерами, но если я открою тот же файл после запуска filename.exe, текстовый файл будет пуст. Еще странно то, что это происходит не на всех P C, с которыми я тестировал файлы.
Есть идеи, что может привести к этой проблеме? спасибо
РЕДАКТИРОВАТЬ: по запросу я добавляю дополнительную информацию и отслеживаю:
Синим цветом показано содержимое 5 полей ввода , который должен быть сохранен в текстовый файл. В красной заостренной линии вы видите, что читается из функции self.check_something () после открытия файла и выполнения разбиения на \ n. Как видите, вместо двух чисел и пустых строк ничего нет, а затем последний элемент полностью неправильный.
Еще одна информация: когда система останавливается по этому исключению, если я открываю файл, я ничего не вижу. когда я закрываю это приложение, содержимое файла обновляется нормально, 2 числа сохраняются в файле, и все в порядке. вот что сводит меня с ума ... поэтому это не может быть проблема с папкой или неправильным файлом ..
И опять же, на некоторых p c он работает нормально, а на некоторых - нет .. .