按钮框的文件路径无效
Invalid file path for button box
我正在创建一个带有两个按钮的 window - 一个用于导入 excel 文件,另一个用于在选择 excel 工作表后关闭 window。我可以选择 excel 文件,但是当我单击“确定”时,我收到一条错误消息,指出我的文件路径无效。
使用 python 2.7
import Tkinter, tkFileDialog
import pandas as pd
root= Tkinter.Tk()
canvas = Tkinter.Canvas(root, width = 300, height = 300, bg = 'PowderBlue')
canvas.pack()
def getExcel ():
global df
import_file_path = tkFileDialog.askopenfilenames(title = 'Select file(s)',filetypes = (('Excel','*.xlsx'),('Comma Delimited','*.csv'),('xls', '*.xls')))
df = pd.read_excel (import_file_path)
print (df)
okay = Tkinter.Button(text='Okay', command=root.destroy, bg='blue', fg='white', font=('Arial', 10, 'bold'))
canvas.create_window(150, 200, window=okay)
browse_excel = Tkinter.Button(text='Import Excel File(s)', command = getExcel, bg='gray23', fg='white', font=('helvetica', 12, 'bold'))
canvas.create_window(150, 150, window = browse_excel)
root.mainloop()
我得到的错误
raise ValueError(msg.format(_type=type(filepath_or_buffer)))
ValueError: Invalid file path or buffer object type: <type 'tuple'>
tkFileDialog.askopenfilenames(...)
returns 一个或多个文件名的元组。您不能将此元组直接传递给 read_excel()
;你必须遍历元组的内容并为每个文件名调用一次该函数:
filenames = tkFileDialog.askopenfilenames(...)
for filename in filenames:
df = pd.read_excel(filename)
print(df)
或者您可以为单个文件名调用 askopenfilename()
(注意末尾没有 s
)。
我正在创建一个带有两个按钮的 window - 一个用于导入 excel 文件,另一个用于在选择 excel 工作表后关闭 window。我可以选择 excel 文件,但是当我单击“确定”时,我收到一条错误消息,指出我的文件路径无效。
使用 python 2.7
import Tkinter, tkFileDialog
import pandas as pd
root= Tkinter.Tk()
canvas = Tkinter.Canvas(root, width = 300, height = 300, bg = 'PowderBlue')
canvas.pack()
def getExcel ():
global df
import_file_path = tkFileDialog.askopenfilenames(title = 'Select file(s)',filetypes = (('Excel','*.xlsx'),('Comma Delimited','*.csv'),('xls', '*.xls')))
df = pd.read_excel (import_file_path)
print (df)
okay = Tkinter.Button(text='Okay', command=root.destroy, bg='blue', fg='white', font=('Arial', 10, 'bold'))
canvas.create_window(150, 200, window=okay)
browse_excel = Tkinter.Button(text='Import Excel File(s)', command = getExcel, bg='gray23', fg='white', font=('helvetica', 12, 'bold'))
canvas.create_window(150, 150, window = browse_excel)
root.mainloop()
我得到的错误
raise ValueError(msg.format(_type=type(filepath_or_buffer)))
ValueError: Invalid file path or buffer object type: <type 'tuple'>
tkFileDialog.askopenfilenames(...)
returns 一个或多个文件名的元组。您不能将此元组直接传递给 read_excel()
;你必须遍历元组的内容并为每个文件名调用一次该函数:
filenames = tkFileDialog.askopenfilenames(...)
for filename in filenames:
df = pd.read_excel(filename)
print(df)
或者您可以为单个文件名调用 askopenfilename()
(注意末尾没有 s
)。