我正在用python编写一个简单的excel到使用tkinter和panda的文件夹软件中。这个程序的第一步将是文件选择,所以我写:
data_path=StringVar()
def getPath():
file = filedialog.askopenfile(mode='r', initialdir='/',
filetypes=[("xlsx files", "*.xlsx")])
if file:
filepath=os.path.abspath(file.name)
data_path.set(filepath)
Label(root, textvariable=data_path).grid(row=1,column=0,sticky='w', padx=100)
labels1_1 = Label (root, text = "Carica un File",
font=('Arial', 12, 'bold')).grid(row=0,column=0,padx=5,sticky='w')
open_button = Button (root, text="Scegli un File",
command=getPath).grid(row=1,column=0, padx=13, pady=5,sticky='w')
但是如果我设置";data_ path";作为字符串,然后我放入:
df = pd.read_excel(data_path)
它不起作用。那么,我如何从用户的excel文件中读取数据帧呢?
data_path
是StringVar
的一个实例,您需要得到它的值,所以您必须使用get()
方法来获得它的值:
df = pd.read_excel(data_path.get())
此外,您不需要askopenfile
,只需使用askopenfilename
即可,它将返回文件的绝对路径。
def getPath():
file = filedialog.askopenfilename(initialdir='/',
filetypes=[("xlsx files", "*.xlsx")])
if file:
data_path.set(file)
Label(root, textvariable=data_path).grid(row=1,column=0,sticky='w', padx=100)