Send2Trash is a small package that sends files to the Trash (or Recycle Bin) natively and on
all platforms. On OS X, it uses native
FSMoveObjectToTrashSync Cocoa calls or can use pyobjc
with NSFileManager. On Windows, it uses native
IFileOperation call if on Vista or newer and
pywin32 is installed or falls back to
SHFileOperation calls. On other platforms, if
GIO are available, it will use this. Otherwise, it will fallback to its own implementation of
trash specifications from freedesktop.org_.
ctypes is used to access native libraries, so no compilation is necessary.
Send2Trash supports Python 2.7 and up (Python 3 is supported).
Additional help is welcome for supporting this package. Specifically help with the OSX and Linux issues and fixes would be most appreciated.
You can download it with pip:
python -m pip install -U send2trash
To install with pywin32 or pyobjc required specify the extra
python -m pip install -U send2trash[nativeLib]
or you can download the source from http://github.com/arsenetar/send2trash and install it with::
>>> python setup.py install
from send2trash import send2trash send2trash('some_file') send2trash(['some_file1', 'some_file2'])
On Freedesktop platforms (Linux, BSD, etc.), you may not be able to efficiently
trash some files. In these cases, an exception
is raised, so that the application can handle this case. This inherits from
OSError on Python 2). Specifically, this affects
files on a different device to the user's home directory, where the root of the
device does not have a
.Trash directory, and we don't have permission to
For any other problem,
OSError is raised.
.. _PyGObject: https://wiki.gnome.org/PyGObject .. _GIO: https://developer.gnome.org/gio/ .. _trash specifications from freedesktop.org: http://freedesktop.org/wiki/Specifications/trash-spec/