【发布时间】:2022-01-20 10:40:15
【问题描述】:
我有一个脚本,它会打开一个提示窗口,让用户在执行其他一些任务之前选择一个目录。如果用户选择“取消”,我希望程序显示适当的消息并退出程序。
但是,我无法让它工作。这是我尝试过的:
import tkinter as tk
import pathlib
from tkinter import filedialog
print('\nScript Initialised\nOpening File Dialog Window...\n')
# Define Functions here
def chooseDir():
print('Choose folder 1')
global outputfolder
outputfolder = pathlib.Path(filedialog.askdirectory(title="Output Folder", initialdir='C:\\'))
if outputfolder == '.':
print('No folder selected. Program exiting.')
quit()
root.withdraw()
def openFile():
print('Choose folder 2')
global inputfolder
inputfolder = pathlib.Path(filedialog.askdirectory(title="Import Folder", initialdir='C:\\'))
if inputfolder == '.':
print('No folder selected. Program exiting.')
quit()
root.withdraw()
# Create Tkinter menu
root = tk.Tk()
root.withdraw()
openFile()
root.withdraw()
chooseDir()
root.destroy()
root.mainloop()
print(outputfolder)
print(inputfolder)
我还尝试了一个空字符串 '',但似乎没有在 if 语句中打印消息。
【问题讨论】:
-
考虑打印该值以查看取消时的值
-
我有,底部的2个打印语句表示用户单击“取消”的时间段。但是,这不会在 IF 中返回正确的消息。
-
@Bryan Oakley 那么你是如何捕捉到它的呢?如果我将其更改为空字符串,它仍然不起作用
-
如果用户选择当前文件夹,则打印 No folder selected,这就是
if outputfolder == '.':所做的
标签: python tkinter pathlib filedialog