如何在Tkinter / Python2.7.3中使用Windows资源管理器或Finder文件对话框?

时间:2013-02-13 03:10:28

标签: python windows tkinter finder windows-explorer

除此之外,我目前正在尝试创建一个基本的文本编辑器,它可以打开文本文件,编辑它们,然后保存它们。我已经使用this Tkinter对话框用于GUI'文件管理器',但我想知道是否有人知道如何访问Windows上默认的那个?

谢谢!

技术事项:

操作系统:Windows 7

语言:Python 2.7.3

编辑1

通过DEFAULT文件对话,我的意思是Windows资源管理器对话:

file selector

我也用mac。假设我的应用程序是跨平台的,那么我是否可以让程序检查操作系统是什么,然后打开FinderWindows Explorer.

我需要程序能够在不同的命令中保存和打开项目。我该怎么做?

2 个答案:

答案 0 :(得分:1)

目前还不清楚你在问什么,因为tkinter带有的那个在Windows中是默认的。这是另一个link,以防你在某个地方混淆了。请记住,您可以设置它,以便它只找到某种类型的文件,在特定位置启动,返回文件名或目录,甚至打开文件(我认为)

如果您的意思是Windows Explorer,则可以将其打开并使用pywin32关闭它,但不是其他。取自answer

import subprocess
subprocess.Popen(r'explorer /select,"C:\path\of\folder\file"')

答案 1 :(得分:1)

尝试导入tkFileDialog:

import tkFileDialog as tkfd
def save():
    savenm = tkfd.asksaveasfile()
    f = open(savenm.name,"w")
    # then put what to do with the opened file
def open():
    opennm = tkfd.askopenfile()
    f = open(savenm.name,"r")
    # then put what to do with the opened file

然后创建一个使用函数的按钮:

import Tkinter as tk
root=tk.Tk()
SAVELOADFRAME = tk.Frame(root)
SAVELOADFRAME.pack()
savebtn = Button(SAVELOADFRAME,text="Save",command=save)
savebtn.pack(side=LEFT)
root.mainloop()
loadbtn = Button(SAVELOADFRAME,text="Open",command=open)
loadbtn.pack(side=RIGHT)

如果您有记事本框,可能需要将文件中的文本插入到tk.Text小部件中。以上代码仅适用于基于文本的文件(例如* .js,* .txt,* .py)而非* .exe,* .dll等等。

希望能解决您的问题:^)