<blockquote>
<p>Unless maybe I read files into an array</p>
</blockquote>
<p>不,您不希望一次读取所有这些文件。这将极大地影响性能。在</p>
<p>但是如果你列一个checkbutton和它们相关联的变量的列表就好了。这样,您就可以在函数<code>ShowChoice</code>中轻松地访问它们。在</p>
<p>下面是一个采用这种想法的程序版本。我评论了我改的大部分台词:</p>
<pre><code>from Tkinter import *
import os
root = Tk()
# A list to hold the checkbuttons and their associated variables
buttons = []
def ShowChoice():
# Go through the list of checkbuttons and get each button/variable pair
for button, var in buttons:
# If var.get() is True, the checkbutton was clicked
if var.get():
# So, we open the file with a context manager
with open(os.path.join("Path", button["text"])) as file:
# And print its contents
print file.read()
for file in os.listdir("Path"):
if file.endswith(".txt"):
# Create a variable for the following checkbutton
var = IntVar()
# Create the checkbutton
button = Checkbutton(root, text=file, variable=var)
button.pack(anchor=W)
# Add a tuple of (button, var) to the list buttons
buttons.append((button, var))
submitButton = Button(root, text="Submit", command=ShowChoice)
submitButton.pack()
mainloop()
</code></pre>