Speed up shutil.copyfile by using sendfile system call
Project description
pyfastcopy is a simple Python module that monkey patches the shutil.copyfile function of Python standard library to internally use the sendfile system call.
It can provide massive performance improvements for large file copy (the larger the file, the greater the performance gain). See here for some numbers.
Because shutil.copyfile is used by other fonctions in the shutil module, the following functions also automatically benefit from the performance boost:
shutil.copy
shutil.copy2
shutil.copytree
If sendfile is not available on your system or fails, the classic, slower chunk file copy is used, so there is no downside to using this module.
For more information, see my proposed patch for Python.
Usage
Just import the module:
import pyfastcopy
And then use the patched shutil.copyfile as usual:
shutil.copyfile(src, dst)
The ``sendfile`` system call does not exist on Windows, so importing this module will have no effect.
Installation
From PyPI (with PIP)
If you don’t already have it, install pip for Python 3 (not needed if you are using Python >= 3.4)
Install pyfastcopy: pip3 install pyfastcopy
Enjoy fast fast copy when using shutil.copyfile, shutil.copy, shutil.copy2 or shutil.copytree
From source
If you don’t already have it, install setuptools for Python 3
Clone this repository: git clone https://github.com/desbma/pyfastcopy
Install pyfastcopy: python3 setup.py install
Enjoy fast fast copy when using shutil.copyfile, shutil.copy, shutil.copy2 or shutil.copytree
License
Python Software Foundation License
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.