Get selected files and folders in Windows
Project description
pywinselect
Get selected files and folders in Windows.
Installation
pip install pywinselect
What it does
pywinselect detects which files or folders you have selected in Windows, regardless of where they are.
It works in:
- File Explorer - Any open Explorer window
- Desktop - Files and folders selected on your desktop
Returns absolute paths to everything selected. If nothing is selected, returns an empty list.
Why use it
When building automation tools, you often need to know what the user has selected. Without this library, you'd have to:
- Write 100+ lines of win32 API code
- Handle File Explorer and Desktop separately
- Deal with clipboard backup/restore
- Debug why it doesn't work on Desktop
pywinselect solves this in one line.
Use cases
- Stream Deck scripts - Create buttons that act on selected files
- Keyboard macros - Automate repetitive file operations
- Custom context menus - Build tools that work with selections
- Productivity apps - Quick actions on currently selected items
- Batch processing - Process whatever the user has selected
Usage
from pywinselect import get_selected
# Get all selected items (Desktop + Explorer)
files = get_selected()
# Filter by type
only_files = get_selected(filter_type="files")
only_folders = get_selected(filter_type="folders")
# Get selection from specific location
desktop_only = get_selected(only_desktop=True)
explorer_only = get_selected(only_explorer=True)
API
get_selected(filter_type=None, only_desktop=False, only_explorer=False) -> list[str]
Returns list of absolute paths to selected items.
Parameters:
filter_type(optional): Filter results by typeNone- Return both files and folders (default)"files"- Return only files"folders"- Return only folders
only_desktop(optional): IfTrue, only get selection from Desktoponly_explorer(optional): IfTrue, only get selection from File Explorer
Returns:
list[str]- Paths to selected files/folders[]- Empty list if nothing is selected
Raises:
ValueError- If bothonly_desktopandonly_explorerareTrue
Examples:
>>> get_selected()
['C:\\Users\\John\\file.txt', 'C:\\Users\\John\\Documents']
>>> get_selected(filter_type="files")
['C:\\Users\\John\\file.txt']
>>> get_selected(filter_type="folders")
['C:\\Users\\John\\Documents']
>>> get_selected(only_desktop=True)
['C:\\Users\\John\\Desktop\\file.txt']
>>> get_selected(only_explorer=True)
['C:\\Users\\John\\Downloads\\file.txt']
>>> get_selected(only_desktop=True, only_explorer=True)
ValueError: Cannot set both only_desktop and only_explorer to True
How it works
Uses official Windows Shell COM APIs (IShellView, IDataObject) - the same interfaces Windows Explorer uses internally.
Safe by design:
- Read-only operations
- No keyboard simulation
- No clipboard modifications
- No system state changes
Requirements
- Python 3.10+
- Windows
- pywin32
License
MIT
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file pywinselect-0.2.1.tar.gz.
File metadata
- Download URL: pywinselect-0.2.1.tar.gz
- Upload date:
- Size: 6.5 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.13.9
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
610ea4a0e692c1f94a5df20d7182858925dfceb0dcb53567b40c88f8c63f359c
|
|
| MD5 |
6060ed1925c872a20b97e93fb0e2eb6c
|
|
| BLAKE2b-256 |
96350c3be5360b0845f897715670f5ecffa52e95d2e969c395f66fec5745d6fe
|
File details
Details for the file pywinselect-0.2.1-py3-none-any.whl.
File metadata
- Download URL: pywinselect-0.2.1-py3-none-any.whl
- Upload date:
- Size: 5.9 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.13.9
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
2196aeae49c798d75201b557625b306961ff80aeab7c794a92ed0ed6f050bc4e
|
|
| MD5 |
fd51a84b56711632be814a533e19b4ba
|
|
| BLAKE2b-256 |
48f6ec63d25af4f5ee2632d354b1d3c924a59445d591d7c1c349e9c7e1b6cba0
|