不确定如何使用 tkinter 和 openpyxl 管理我的 variables/data:fstring 问题
Unsure how to manage my variables/data using tkinter and openpyxl: fstring issue
我正在 Raspberry Pi(如果它完全相关)上创建一个应用程序,它需要访问来自传播sheet 的特定单元格的数据,以便将设置显示为按钮文本。有多个 'modes'、设置和按钮。可能需要更新的按钮各不相同,我已经用布尔变量指定了它。需要在指定按钮上显示的文本也可以因时间和工作而异sheet。我能够创建一个变量来保存时间,然后使用嵌套的 f 字符串能够显示来自正确单元格的数据:
current_time = datetime.now().strftime('%H')
cell_number = int(current_time)+2
bool = True
def update_button():
if bool == True:
button.config(text=f"{ws_sheet[f'A{cell_number}'].value}")
else:
button1.config(text=f"{ws_sheet[f'B{cell_number}'].value}")
这很好用,但我现在还需要根据不同的变量更改 sheet。我试过了,但它产生了 fstring 语法错误。
current_time = datetime.now().strftime('%H')
cell_number = int(current_time)+2
bool = True
worksheet = some_worksheet
def update_button():
if bool == True:
button.config(text=f"{{worksheet}[f'A{cell_number}'].value}")
else:
button1.config(text=f"{{worksheet}[f'B{cell_number}'].value}")
产生的语法错误:
button.config(text=f"{{worksheet}[f'A{cell_number}'].value}")
^
SyntaxError: f-string: single '}' is not allowed
这对我来说似乎也是一个违反直觉的错误。
我很乐意接受这样一个事实,即我可能正在以完全错误的方式进行此操作,并且为了我自己的自我,我不得不说我这样做的时间并不长。我知道我可以通过大量 if/else 语句来实现我想要的,但我希望做一些更优雅的事情。
非常感谢任何帮助。
您可以在调用函数时传递作业 sheet。
def update_button(ws_sheet):
if bool == True:
button.config(text=f"{ws_sheet[f'A{cell_number}'].value}"
else:
button1.config(text=f"{ws_sheet[f'B{cell_number}'].value}"
我正在 Raspberry Pi(如果它完全相关)上创建一个应用程序,它需要访问来自传播sheet 的特定单元格的数据,以便将设置显示为按钮文本。有多个 'modes'、设置和按钮。可能需要更新的按钮各不相同,我已经用布尔变量指定了它。需要在指定按钮上显示的文本也可以因时间和工作而异sheet。我能够创建一个变量来保存时间,然后使用嵌套的 f 字符串能够显示来自正确单元格的数据:
current_time = datetime.now().strftime('%H')
cell_number = int(current_time)+2
bool = True
def update_button():
if bool == True:
button.config(text=f"{ws_sheet[f'A{cell_number}'].value}")
else:
button1.config(text=f"{ws_sheet[f'B{cell_number}'].value}")
这很好用,但我现在还需要根据不同的变量更改 sheet。我试过了,但它产生了 fstring 语法错误。
current_time = datetime.now().strftime('%H')
cell_number = int(current_time)+2
bool = True
worksheet = some_worksheet
def update_button():
if bool == True:
button.config(text=f"{{worksheet}[f'A{cell_number}'].value}")
else:
button1.config(text=f"{{worksheet}[f'B{cell_number}'].value}")
产生的语法错误:
button.config(text=f"{{worksheet}[f'A{cell_number}'].value}")
^
SyntaxError: f-string: single '}' is not allowed
这对我来说似乎也是一个违反直觉的错误。
我很乐意接受这样一个事实,即我可能正在以完全错误的方式进行此操作,并且为了我自己的自我,我不得不说我这样做的时间并不长。我知道我可以通过大量 if/else 语句来实现我想要的,但我希望做一些更优雅的事情。
非常感谢任何帮助。
您可以在调用函数时传递作业 sheet。
def update_button(ws_sheet):
if bool == True:
button.config(text=f"{ws_sheet[f'A{cell_number}'].value}"
else:
button1.config(text=f"{ws_sheet[f'B{cell_number}'].value}"