Patch #621891: Add askopenfile{name}s.
diff --git a/Lib/lib-tk/tkFileDialog.py b/Lib/lib-tk/tkFileDialog.py
index 93cb277..569254a 100644
--- a/Lib/lib-tk/tkFileDialog.py
+++ b/Lib/lib-tk/tkFileDialog.py
@@ -29,12 +29,16 @@
#
# - title: dialog title
#
+# - multiple: if true user may select more than one file
+#
# options for the directory chooser:
#
# - initialdir, parent, title: see above
#
# - mustexist: if true, user must pick an existing directory
#
+#
+
from tkCommonDialog import Dialog
@@ -98,7 +102,18 @@
return SaveAs(**options).show()
-# FIXME: are the following two perhaps a bit too convenient?
+def askopenfilenames(**options):
+ """Ask for multiple filenames to open
+
+ Returns a list of filenames or empty list if
+ cancel button selected
+ """
+ options["multiple"]=1
+ files=Open(**options).show()
+ return files.split()
+
+
+# FIXME: are the following perhaps a bit too convenient?
def askopenfile(mode = "r", **options):
"Ask for a filename to open, and returned the opened file"
@@ -108,6 +123,23 @@
return open(filename, mode)
return None
+def askopenfiles(mode = "r", **options):
+ """Ask for multiple filenames and return the open file
+ objects
+
+ returns a list of open file objects or an empty list if
+ cancel selected
+ """
+
+ files = askopenfilenames(**options)
+ if files:
+ ofiles=[]
+ for filename in files:
+ ofiles.append(open(filename, mode))
+ files=ofiles
+ return files
+
+
def asksaveasfile(mode = "w", **options):
"Ask for a filename to save as, and returned the opened file"
diff --git a/Misc/NEWS b/Misc/NEWS
index 90bd02f..d0d1a46 100644
--- a/Misc/NEWS
+++ b/Misc/NEWS
@@ -348,11 +348,12 @@
Library
-------
-- Various features of Tk 8.4 are exposed in Tkinter.py.
+- Various features of Tk 8.4 are exposed in Tkinter.py. The multiple
+ option of tkFileDialog is exposed as function askopenfile{,name}s.
-- Various configure methods of Tkinter have been stream-lined, so
- that tag_configure, image_configure, window_configure now return
- a dictionary when invoked with no argument.
+- Various configure methods of Tkinter have been stream-lined, so that
+ tag_configure, image_configure, window_configure now return a
+ dictionary when invoked with no argument.
- Importing the readline module now no longer has the side effect of
calling setlocale(LC_CTYPE, ""). The initial "C" locale, or