Python 3.6 - AttributeError:模块“tkinter”没有属性“filedialog”

0s7z1bwu  于 2023-05-02  发布在  Python
关注(0)|答案(2)|浏览(177)

几分钟前我的功能还好好的。没有修改代码,只是安装了PyAudio。我得到了每个主题的错误。不管是从命令行还是IDE运行,都是同样的错误。有什么想法吗

def DataFinder():
    #imports and initialize
    import pandas as pd
    import tkinter as tk

    finder = tk.Tk()
    finder.withdraw()

    __dataFlag = False
    #ask user to select a file
    __path = tk.filedialog.askopenfilename()
    #check the extension to handle reader
    #for csv files
    if __path.endswith('.csv')==True:
        df = pd.read_csv(__path,header=0)
        return df
        __dataFlag = True
    #and for excel files
    elif __path.endswith('.xls')==True:
        df = pd.read_excel(__path,header=0)
        return df
        __dataFlag = True
    #if a file is not a supported type display message and quit
    else:
        __dataFlag = False

    #check if there is a data to be returned
    if __dataFlag==True:
        return df
    else:
        print('The file format is not supported in this version.')
n9vozmp4

n9vozmp41#

显式导入文件对话框可以解决这个问题。所以,你只需要在代码中添加这一行:

import tkinter.filedialog

您可以在Why tkinter module raises attribute error when run via command line but not when run via IDLE?上找到更多信息

dohp0rv5

dohp0rv52#

下面的代码对我不起作用:

import tkinter as tk
import tkinter.filedialog

但以下方法确实有效:

import tkinter
import tkinter.filedialog

还有这个

import tkinter.filedialog
import tkinter as tk

希望这对你有帮助

注意事项

Vaidøtas I所述。,则无法从tkinter导入filedialog。因为您没有导入原始的tkinter,而是导入了别名版本tk

相关问题