Python文件上载If语句和用户取消
我有以下文件上传代码。我想修改此代码以实现两个目的: 1.如果用户取消askopenfilenames命令,整个程序将停止。 2.如果用户未选择所需的文件数,则fileupload功能将重新启动,直到选择正确的文件数Python文件上载If语句和用户取消,python,tkinter,Python,Tkinter,我有以下文件上传代码。我想修改此代码以实现两个目的: 1.如果用户取消askopenfilenames命令,整个程序将停止。 2.如果用户未选择所需的文件数,则fileupload功能将重新启动,直到选择正确的文件数 import Tkinter from Tkinter import Tk tk=Tk() from tkFileDialog import askopenfilenames import tkMessageBox def fileupload(): tk.withdra
import Tkinter
from Tkinter import Tk
tk=Tk()
from tkFileDialog import askopenfilenames
import tkMessageBox
def fileupload():
tk.withdraw()
uploadedfiles = askopenfilenames(multiple=True)
##if user cancels: (IF STATEMENT TO RESULT IN MESSAGEBOX AND CODE TO STOP)
###tk.withdraw()
###tkMessageBox.showinfo(message="File Upload has been cancelled program will stop")
##Stop code
if len(uploadedfiles)>2 or len(uploadedfiles)<2:
tk.withdraw()
tkMessageBox.showinfo(message="2 files have not been selected!")
##rerun function to reselect files
return uploadedfiles
uploadedfiles=fileupload()
print uploadedfiles
首先检查askopenfilenames返回的字符串是否为空,这意味着用户关闭了对话框。然后,如果字符串不是空的,则使用tk.splitlist从该字符串创建一个列表,并检查其长度:
tk=Tk()
tk.withdraw()
def fileupload():
while True:
uploadedfilenames = askopenfilenames(multiple=True)
if uploadedfilenames == '':
tkMessageBox.showinfo(message="File Upload has been cancelled program will stop")
return
uploadedfiles = tk.splitlist(uploadedfilenames)
if len(uploadedfiles)!=2:
tkMessageBox.showinfo(message="2 files have not been selected!")
else:
return uploadedfiles
print fileupload()