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
Metadata
Release files for pywinselect 0.2.1
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | Actions |
|---|---|---|---|---|
| pywinselect-0.2.1.tar.gz | 6.5 kB | Without provenance | Details for pywinselect-0.2.1.tar.gz |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Actions Reset |
|---|---|---|---|---|
| pywinselect-0.2.1-py3-none-any.whl | Python 3 | none | any | Details for pywinselect-0.2.1-py3-none-any.whl |
Total release size: 12.4 kB
Release files / pywinselect-0.2.1.tar.gz
| Download URL | pywinselect-0.2.1.tar.gz |
|---|---|
| Size | 6.5 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
610ea4a0e692c1f94a5df20d7182858925dfceb0dcb53567b40c88f8c63f359c
|
|
BLAKE2b-256 checksum How to use checksums |
96350c3be5360b0845f897715670f5ecffa52e95d2e969c395f66fec5745d6fe
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.13.9
|
Release files / pywinselect-0.2.1-py3-none-any.whl
| Download URL | pywinselect-0.2.1-py3-none-any.whl |
|---|---|
| Size | 5.9 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
2196aeae49c798d75201b557625b306961ff80aeab7c794a92ed0ed6f050bc4e
|
|
BLAKE2b-256 checksum How to use checksums |
48f6ec63d25af4f5ee2632d354b1d3c924a59445d591d7c1c349e9c7e1b6cba0
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.13.9
|
Security for pywinselect 0.2.1
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
No provenance found
None of the files in this release were uploaded with provenance metadata.
A note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.
To learn more about protecting yourself from malicious actors, visit our package security documentation.