【问题标题】:Why tkinter.filedialog.askdirectory isn't returning the full path (with the selected dirname)?为什么 tkinter.filedialog.askdirectory 没有返回完整路径(带有选定的目录名)?
【发布时间】:2016-07-06 11:10:17
【问题描述】:

我正在尝试获取通过 tkinter.filedialog.askdirectory 选择的目录的完整路径,但它只返回根文件夹的路径,例如,选择文件夹 /root 将只返回'/',这个看起来很奇怪,如何让它返回python3.5中的完整路径?

将 tkinter 导入为 tk 从 tkinter 导入文件对话框

root = tk.Tk()
root.withdraw()
dirname = filedialog.askdirectory(parent=root,initialdir="/",title='Please select a directory')
if len(dirname ) > 0:
    print("You chose %s" % dirname)

【问题讨论】:

  • 它在我的 Mac 上按预期工作,你使用的是什么操作系统?
  • Linux gnu 4.2.0-27-generic #32-Ubuntu SMP Fri Jan 22 04:49:08 UTC 2016 x86_64 x86_64 x86_64 GNU/Linux
  • 所以它返回打开的文件夹而不是选择的文件夹?如果您双击/root 导航到它,然后确认它是否为您提供了正确的路径?我记得我的朋友在除 python 之外的程序上也遇到了与 linux 相同的问题。
  • 这就是问题所在,我们必须双击然后按确定

标签: python tkinter python-3.5


【解决方案1】:

filedialog.askdirectory() 方法返回需要PyObject 命令的filedialog.Directory 类的实例:

仅仅选择一个文件夹并不代表一个命令,因此您不会打印出您想要的文件夹。通过双击您想要的文件夹代表一个令人满意且连贯的 PyObject 命令,从而产生您期望的结果。

简单来说:你需要双击你要打开的文件夹,然后点击确定不要简单地选择它然后点击Ok文件打开对话窗口。否则会打印出你现在所在目录的路径(initialdir = '/'

【讨论】:

  • 在 python 3 askdirectory() 返回类型 str 类对象
猜你喜欢
  • 2015-12-26
  • 1970-01-01
  • 1970-01-01
  • 2012-01-18
  • 2013-07-07
  • 2014-04-25
  • 2019-02-24
  • 2012-03-20
  • 2017-06-07
相关资源
最近更新 更多