A simple Python file chooser widget for use in Jupyter/IPython in conjunction with ipywidgets. The selected path and file are available via .selected_path
and .selected_filename
respectvely or as a single combined filepath via .selected
. The dialog can be reset to its default path and filename by using .reset()
.
When a typed filename matches an existing file entry in the current folder the entry will be highlighted. If a typed filename matches a folder entry in the current view the selection button is disabled ensure the user is aware of the match. To select a folder simply leave the filename field empty.
To emphasize the risk of overwriting existing files, the selected filepath is displayed in green if the file does not exist and orange if it does.
from ipyfilechooser import FileChooser
# Create and display a FileChooser widget
fc = FileChooser('/Users/crahan/FC demo')
display(fc)
# Print the selected path, filename, or both
print(fc.selected_path)
print(fc.selected_filename)
print(fc.selected)
# Change defaults and reset the dialog
fc.default_path = '/Users/crahan/'
fc.default_filename = 'output.txt'
fc.reset()
# Shorthand reset
fc.reset(path='/Users/crahan/', filename='output.txt')
# Restrict navigation to /Users
fc.sandbox_path = '/Users'
# Change hidden files
fc.show_hidden = True
# Customize dir icon
fc.dir_icon = '/'
fc.dir_icon_append = True
# Switch to folder-only mode
fc.show_only_dirs = True
# Set a file filter pattern (uses https://docs.python.org/3/library/fnmatch.html)
fc.filter_pattern = '*.txt'
# Set multiple file filter patterns (uses https://docs.python.org/3/library/fnmatch.html)
fc.filter_pattern = ['*.jpg', '*.png']
# Change the title (use '' to hide)
fc.title = '<b>FileChooser title</b>'
# Sample callback function
def change_title(chooser):
chooser.title = '<b>Callback function executed</b>'
# Register callback function
fc.register_callback(change_title)
fc.reset()
fc.refresh()
fc.register_callback(function_name)
fc.show_hidden
fc.dir_icon
fc.dir_icon_append
fc.show_only_dirs
fc.rows
fc.title
fc.filter_pattern
fc.default
fc.default_path
fc.default_filename
fc.sandbox_path
fc.value
fc.selected
fc.selected_path
fc.selected_filename
sandbox_path
folder has finally been added!use_dir_icons
has been replaced with dir_icon
which allows for customizing the folder icondir_icon_append
can now be used to put the folder icon before or after the folder nameParentPathError
, InvalidPathError
, and InvalidFileNameError
layout
property and a Layout
objectos.path.normpath
to properly handle '/' and '\' on Windowsvalue
property to align with other widget typesfilter_pattern
values not being treated as case-insensitivefilter_pattern
valuesfnmatch
pattern strings for filter_pattern
select_default
not being applied on reset
ValueWidget
and get_interact_value()
self
as an argument to the callback function (@ptooley)None
if file is not selected (@danjjl)register_callback(function_name)
)