Python 打印tkinter askopenfile()输入

Python 打印tkinter askopenfile()输入,python,tkinter,Python,Tkinter,我想下面的代码打印选定的文件,但我做错了什么。代码给出了以下错误: TypeError:应为str、bytes或os.PathLike对象,而不是_io.TextIOWrapper def open_file(): global file global wb file = askopenfile(mode="a", filetypes=[("Excel Files", "*.xlsx *.xlsm *.sxc *.ods

我想下面的代码打印选定的文件,但我做错了什么。代码给出了以下错误:

TypeError:应为str、bytes或os.PathLike对象,而不是_io.TextIOWrapper

def open_file():
    global file
    global wb
    file = askopenfile(mode="a", filetypes=[("Excel Files", "*.xlsx *.xlsm *.sxc *.ods *.csv *.tsv")])
    wb = openpyxl.load_workbook(filename=file.name)
    filename = os.path.basename(file)
    print(filename)

我做错了什么?

也许您的错误在这一行:

filename = os.path.basename(file)
应该是:

filename = os.path.basename(file.name)

错误表明您没有传递路径(字符串)、字节或类似os.PathLike的对象。相反,您正在传递
\u io.TextIOWrapper
对象,正如
文件
\u io.TextIOWrapper
对象一样。

错误发生在哪一行?但是,我还需要能够读取和写入该文件。`askopenfilename`不允许我这样做,我believe@Mhcg233366检查更新的答案。