A Python wrapper for opening files and folders with the native file dialog.
Makes it easy to prompt the user with a native filepicker on all supported platforms.
Currently supports:
- Zenity (GTK)
- KDialog (KDE)
- Windows 2000 and newer (via PyWin32)
- osascript (macOS)
Basic API usage:
import crossfiledialog
filename = crossfiledialog.open_file()
multiple_filenames = crossfiledialog.open_multiple()
save_filename = crossfiledialog.save_file()
foldername = crossfiledialog.choose_folder()crossfiledialog.open_file(title, start_dir, filter) -> strOpen a file selection dialog for selecting a file.
Parameters:
- title (str, optional) — The title of the file selection dialog. Default is 'Choose a file'
- start_dir (str, optional) — The starting directory for the dialog.
- filter (str, list, dict, optional) — The filter for file types to display. It can be either:
- a single wildcard (e.g.:
"*.py", all files are displayed ending .py) - a list of wildcards (e.g.:
["*.py" "*.md"], all files are displayed ending either .py or .md) - a list of list optional one or more wildcards (e.g.:
[["*.py", "*.md"], ["*.txt"]], user can switch between (.py, .md) and (.txt)) - a dictionary mapping descriptions to wildcards (e.g.:
{"PDF-Files": "*.pdf", "Python Project": ["\*.py", "*.md"]})
- a single wildcard (e.g.:
Returns:
- str: The selected file's path.
crossfiledialog.open_multiple(title, start_dir, filter) -> list[str]Open a file selection dialog for selecting multiple files.
Parameters:
- title (str, optional) — The title of the file selection dialog. Default is 'Choose one or more files'
- start_dir (str, optional) — The starting directory for the dialog.
- filter (str, list, dict, optional) — The filter for file types to display. It can be either:
- a single wildcard (e.g.:
"*.py", all files are displayed ending .py) - a list of wildcards (e.g.:
["*.py" "*.md"], all files are displayed ending either .py or .md) - a list of list optional one or more wildcards (e.g.:
[["*.py", "*.md"], ["*.txt"]], user can switch between (.py, .md) and (.txt)) - a dictionary mapping descriptions to wildcards (e.g.:
{"PDF-Files": "*.pdf", "Python Project": ["\*.py", "*.md"]})
- a single wildcard (e.g.:
Returns:
- list[str]: A list of selected file paths.
crossfiledialog.save_file(title, start_dir) -> strOpen a save file dialog.
Parameters:
- title (str, optional) — The title of the file selection dialog. Default is 'Enter the name of the file to save to'
- start_dir (str, optional) — The starting directory for the dialog.
Returns:
- str: The selected file's path for saving.
crossfiledialog.save_file(title, start_dir) -> strOpen a folder selection dialog.
Parameters:
- title (str, optional) — The title of the file selection dialog. Default is 'Choose a folder'
- start_dir (str, optional) — The starting directory for the dialog.
Returns:
- str: The selected folder's path.
This software is licensed under the GNU LGPL 3.0 Only. See the LICENSE file for details.
SPDX-License-Identifier: LGPL-3.0-only