add file exist logic

This commit is contained in:
Daniel Weschke
2026-04-27 15:43:10 +02:00
parent 1b46f2cf6c
commit f3a4d814ba

16
app.py
View File

@@ -30,7 +30,9 @@ pio.templates["plotly_light"].layout['yaxis']['zerolinecolor'] = 'lightgray'
ELM = {
'name': 'tempplot',
'filename': './data/20260420213656.txt',
'filedir': './data',
# 'filename': './data/20260420213656.txt',
'filename': None,
'label_file_fmt': 'File: {filename}',
'label_data_len_fmt': 'Data points: {num:,} (rendered) / {numa:,} (total)',
'label_data_temp_fmt': 'Temperature = [{min:.1f}, {max:.1f}] K',
@@ -94,6 +96,8 @@ async def pick_file() -> None:
ELM['label_file'].set_text(ELM['label_file_fmt'].format(filename=os.path.basename(filename)))
def get_data(filename=ELM['filename']):
data = None
if filename is not None and os.path.isfile(filename):
data = np.genfromtxt(fname=filename, skip_header=1)
if len(data) > 0 and len(data[0]) > 6:
@@ -109,12 +113,14 @@ def get_data(filename=ELM['filename']):
return data
def update_data():
if not app.storage.user['timer'] or time.time() - ELM['update_last'] > ELM['update_timeout']:
if not app.storage.user['timer'] \
or time.time() - ELM['update_last'] > ELM['update_timeout']:
ELM['update_busy'] = True
filename=ELM['filename']
data_all = get_data(filename)
data = data_all
if data is not None:
# time_range = ELM['number_time_range'].value
time_range = app.storage.user['time_range']
if time_range is not None and time_range > 0:
@@ -221,8 +227,10 @@ def index():
).bind_value(app.storage.user, 'dark_mode').props('icon="dark_mode"')
with ui.row():
ELM['label_file'] = ui.label(
ELM['label_file_fmt'].format(filename=os.path.basename(ELM['filename'])))
filename = None
if ELM['filename'] is not None:
filename = os.path.basename(ELM['filename'])
ELM['label_file'] = ui.label(ELM['label_file_fmt'].format(filename=filename))
ELM['label_data_len'] = ui.label(ELM['label_data_len_fmt'].format(num=0, numa=0))
ELM['label_data_temp'] = ui.label(ELM['label_data_temp_fmt'].format(min=0, max=0))
ELM['label_data_heat'] = ui.label(ELM['label_data_heat_fmt'].format(min=0, max=0))