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

时间:2019-01-07 23:22:15

标签: python python-3.x 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。

谢谢!

1 个答案:

答案 0 :(得分:0)

open功能仅适用于文件!

打开方式:os.system(filepath)

但是,如果您要打开文件夹,则可以使用os.startfile [Windows]!

示例代码:

from tkinter import *
from tkinter import filedialog
import os

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():
    os.system('%s.csv' % folder_path)

def folderopen():
    os.startfile(dirname)

# Creating buttons
selectFolder = 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()