在 Tkinter 中使用字符串变量打开目录

我正在尝试制作一个带有 2 个按钮的小 GUI,其中第一个按钮允许用户选择一个目录,第二个按钮然后打开第一个按钮选择的目录。到目前为止,我已经设法创建了一个对话框,用户可以在其中选择一个目录,然后将目录位置存储为字符串。我在将字符串作为参考传递时遇到问题。我环顾四周并尝试使用以下行打开一个文件夹,但没有运气。


f = open('%s' % folder_path, 'wb')

我目前的代码是:


from tkinter import *

from tkinter import filedialog


root = Tk()

root.geometry("400x400")


def selectDirectory():

    global dirname

    global folder_path

    dirname = filedialog.askdirectory(parent=root,initialdir="/",title='Please select a directory')

    folder_path.set(dirname)

    print(dirname)

folder_path=StringVar()


def fileopen():

    f = open('%s' % folder_path, 'wb')


# Creating buttons

selectFolder = Button(root, text = "Select directory", command = selectDirectory)

selectFolder.grid(row=0,column=0)


openfile = Button(root, text = "Open folder", command = fileopen)

openfile.grid(row=1, column=0)


root.mainloop()

此外,任何有关我如何改进此代码的建议都将不胜感激。我最近才开始学习 Python。


森栏
浏览 214回答 1
1回答

呼如林

该open功能仅适用于文件!打开方式: os.system(filepath)但是如果你想打开一个文件夹,你可以使用os.startfile[Windows]!示例代码:from tkinter import *from tkinter import filedialogimport osroot = Tk()root.geometry("400x400")def selectDirectory():    global dirname    global folder_path    dirname = filedialog.askdirectory(parent=root,initialdir="/",title='Please select a directory')    folder_path.set(dirname)    print(dirname)folder_path=StringVar()def fileopen():    os.system('%s.csv' % folder_path)def folderopen():    os.startfile(dirname)# Creating buttonsselectFolder = Button(root, text = "Select directory", command = selectDirectory)selectFolder.grid(row=0,column=0)openfile = Button(root, text = "Open file", command = fileopen)openfile.grid(row=1, column=0)openfolder = Button(root, text = "Open folder", command = folderopen)openfolder.grid(row=2, column=0)root.mainloop()
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python