Пример:
у программу, часть которой загружает данные из файла, в частности числа с плавающей запятой. Я использую кроме, чтобы поймать ошибку при преобразовании строки в число с плавающей точкой, но странная вещь случается, когда происходит исключение. В этом случае выполняется только часть моего кода под нимsys.exit(1)
, infoBox.setText
полностью опущен. Я понятия не имею, почему это происходит, и буду очень благодарен за любую помощь. Вот код:
def on_click_load(self):
with open('parameters.txt', 'r', encoding='utf-8') as file:
a = file.read()
help_tab = []
# Pipe along with O, x are special markers in file
for i in range(len(a) - 3):
if a[i] == '|' and a[i + 1] == 'O' and a[i + 2] == 'x':
while a[i + 3] != '|':
if a[i + 3].isdigit() == True:
help_tab.append(a[i + 3])
elif a[i + 3] == '.' or a[i + 3] == '-':
help_tab.append(a[i + 3])
else:
j = ''.join(help_tab)
try:
self.TabX.append(float(j))
except ValueError:
# I have problem in this section
self.infoBox.setText(
'There is an error in data in input file . The window will close in 3 seconds')
QTimer.singleShot(3000, lambda: sys.exit(1))
help_tab.clear()
i += 1