【问题标题】:Python 3.6 - AttributeError: module 'tkinter' has no attribute 'filedialog'Python 3.6 - AttributeError:模块'tkinter'没有属性'filedialog'
【发布时间】:2017-08-06 16:04:29
【问题描述】:

几分钟前我的功能运行良好。没有修改代码,只是安装了 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.')

【问题讨论】:

    标签: python-3.x tkinter


    【解决方案1】:

    显式导入filedialog可以解决问题。 因此,您只需将这一行添加到您的代码中:

    import tkinter.filedialog
    

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

    【讨论】:

    • 我不能import tkinter.filedialog 但是当我运行filedialog.askdirectory 然后它抛出name "filedialog" is not defined
    • “tkinter.filedialog.askdirectory”怎么样?有效吗?
    【解决方案2】:

    以下代码对我不起作用:

    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

    【讨论】:

    • 我可以告诉你为什么你的第一个不起作用,因为你将 tkinter 别名为 tk,然后在别名时从 tkinter 导入 filedialog。
    • @VaidøtasI。感谢您的评论。它有助于教育我自己
    猜你喜欢
    • 2018-11-09
    • 2019-07-17
    • 2018-11-18
    • 2017-03-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-04-28
    • 2018-06-22
    相关资源
    最近更新 更多