如何使用 Tkinter 使用下拉菜单打开文件夹中的文件
How to use Tkinter to open file in folder using dropdown
我需要有关如何在下拉列表中选择文件夹后制作按钮的帮助。
例如:我有 3 个文件夹,名称为“文件夹 1”、“文件夹 2”和“文件夹 3”。在“文件夹 1”中,我有 5 个 excel(.xlsx) 文件。所以我需要有关如何读取和显示 1 excel(.xlsx) 文件中的数据的帮助。
我目前的情况:我在下拉菜单中选择“文件夹1”。接下来我需要的是一个按钮,它可以打开“文件夹 1”并显示另一个包含 5 个 excel(.xlsx) 文件的列表。然后,我可以选择 excel(.xlsx) 文件之一并在 gui 中显示数据。
这是我的代码....帮助我:'(
import os
import tkinter as tk
from tkinter import ttk
#import tkinter as tk
from tkinter import filedialog, messagebox, ttk
folder = r'C:\Users\test folder'
filelist = [fname for fname in os.listdir(folder)]
master = tk.Tk()
master.geometry('1200x800')
master.title('Select a file')
optmenu = ttk.Combobox(master, values=filelist, state='readonly')
optmenu.pack(fill='x')
master.mainloop()
你不能只是 select 然后从 tkinter 读取文件的内容。您必须为该阅读部分编写一些其他脚本。
tkinter combo box
中的 selection of filename 所做的只是获取特定文件名作为 string
类型。
然而,在 Python 中,阅读 .xlsx file
非常简单。
您可以为此使用 Pandas
模块。
我写了代码让你读取文件,(但你必须安装pandas)
from functools import partial
import os
import tkinter as tk
from tkinter import ttk
#import tkinter as tk
from tkinter import filedialog, messagebox, ttk
import pandas
def get_selected_file_name(file_menu):
filename = file_menu.get()
print("file selected:", filename)
reader = pandas.read_excel(filename) # code to read excel file
# now you can use the `reader` object to get the file data
folder = os.path.realpath('./test_folder')
filelist = [fname for fname in os.listdir(folder)]
master = tk.Tk()
master.geometry('1200x800')
master.title('Select a file')
optmenu = ttk.Combobox(master, values=filelist, state='readonly')
optmenu.pack(fill='x')
button_select = tk.Button(master, text="Read File",
width=20,
height=7,
compound=tk.CENTER,
command=partial(get_selected_file_name, optmenu))
button_select.pack(side=tk.RIGHT)
master.mainloop()
window 应该看起来像这样:
我会探索在 tkinter 中使用 filedialog 模块。
import tkinter as tk
from tkinter import filedialog
def load_file():
f_in = filedialog.askopenfilename( filetypes = [ ( 'Python', '*.py' ) ]) # Change to appropriate extension.
if len( f_in ) > 0:
with open( f_in, 'r' ) as file:
filedata = file.read()
print( filedata ) # printed to the terminal for simplicity.
# process it as required.
root = tk.Tk()
tk.Button( root, text = 'Find File', command = load_file ).grid()
root.mainloop()
askopenfilename
允许用户导航文件夹树以找到正确的文件。 Basic documentation
我需要有关如何在下拉列表中选择文件夹后制作按钮的帮助。
例如:我有 3 个文件夹,名称为“文件夹 1”、“文件夹 2”和“文件夹 3”。在“文件夹 1”中,我有 5 个 excel(.xlsx) 文件。所以我需要有关如何读取和显示 1 excel(.xlsx) 文件中的数据的帮助。
我目前的情况:我在下拉菜单中选择“文件夹1”。接下来我需要的是一个按钮,它可以打开“文件夹 1”并显示另一个包含 5 个 excel(.xlsx) 文件的列表。然后,我可以选择 excel(.xlsx) 文件之一并在 gui 中显示数据。
这是我的代码....帮助我:'(
import os
import tkinter as tk
from tkinter import ttk
#import tkinter as tk
from tkinter import filedialog, messagebox, ttk
folder = r'C:\Users\test folder'
filelist = [fname for fname in os.listdir(folder)]
master = tk.Tk()
master.geometry('1200x800')
master.title('Select a file')
optmenu = ttk.Combobox(master, values=filelist, state='readonly')
optmenu.pack(fill='x')
master.mainloop()
你不能只是 select 然后从 tkinter 读取文件的内容。您必须为该阅读部分编写一些其他脚本。
tkinter combo box
中的 selection of filename 所做的只是获取特定文件名作为 string
类型。
然而,在 Python 中,阅读 .xlsx file
非常简单。
您可以为此使用 Pandas
模块。
我写了代码让你读取文件,(但你必须安装pandas)
from functools import partial
import os
import tkinter as tk
from tkinter import ttk
#import tkinter as tk
from tkinter import filedialog, messagebox, ttk
import pandas
def get_selected_file_name(file_menu):
filename = file_menu.get()
print("file selected:", filename)
reader = pandas.read_excel(filename) # code to read excel file
# now you can use the `reader` object to get the file data
folder = os.path.realpath('./test_folder')
filelist = [fname for fname in os.listdir(folder)]
master = tk.Tk()
master.geometry('1200x800')
master.title('Select a file')
optmenu = ttk.Combobox(master, values=filelist, state='readonly')
optmenu.pack(fill='x')
button_select = tk.Button(master, text="Read File",
width=20,
height=7,
compound=tk.CENTER,
command=partial(get_selected_file_name, optmenu))
button_select.pack(side=tk.RIGHT)
master.mainloop()
window 应该看起来像这样:
我会探索在 tkinter 中使用 filedialog 模块。
import tkinter as tk
from tkinter import filedialog
def load_file():
f_in = filedialog.askopenfilename( filetypes = [ ( 'Python', '*.py' ) ]) # Change to appropriate extension.
if len( f_in ) > 0:
with open( f_in, 'r' ) as file:
filedata = file.read()
print( filedata ) # printed to the terminal for simplicity.
# process it as required.
root = tk.Tk()
tk.Button( root, text = 'Find File', command = load_file ).grid()
root.mainloop()
askopenfilename
允许用户导航文件夹树以找到正确的文件。 Basic documentation