【发布时间】:2021-05-11 12:06:20
【问题描述】:
file_list = []
for file in glob.glob("*.txt"):
file_list.append(Path(file).stem)
...(code making buttons here doesn't effect while statement)
while True:
event, values = button_window.read()
print(event)
if event == sg.WIN_CLOSED:
break
elif event == any(file_list[0:len(file_list)]): #(also tried a list comprehension here too)
open_file = open(f"{event}.txt","r+")
read_text = open_file.read()
print(read_text)
open_file.close()
break
如果我将事件更改为列表中的字符串,它会触发。所以我相信这是我的列表理解/这里的任何陈述。
【问题讨论】:
-
event == any(file_list[0:len(file_list)])与event == any(file_list)相同。在您的情况下,any(file_list[0:len(file_list)])将得到True如果找到任何 txt 文件,False如果没有找到 txt 文件。因此,您的事件仅适用于 True 情况,event == True,并且对于大多数情况而言似乎不是 true。 -
感谢 Jason,通过将其更改为 'in' 运算符来意识到我的错误,它现在可以正常工作了 :)
标签: python list-comprehension pysimplegui