我正在尝试制作一个带有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。
谢谢!
答案 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()