Skip to main content

Copy all files with given extensions from a directory and its subfolders to another directory.

Project description

Selective Copy v0.3.0

Python Version PyPi Version Codacy Badge Code style: black License

Simple command line application that copies all files with given extensions from a directory and its subfolders to another directory showing progress bar and remaining files counter.
Allows to preserve a source folder structure, to process only files without given extensions, to move files instead of copying, to exclude certain files from processing and to create a log if necessary.
Opens a filedialog if source and/or destination are not given in the command line.
Creates folders in a destination path if they don't exist.

Installing

pip install slcp

Usage

slcp ext [ext ...] [-s SRC] [-d DST] [-sc | -dc] [-p] [-i] [-m] [-e FILE [FILE ...]] [-l] [-h]

Positional arguments:
ext                         One or more extensions of the files to copy. 
                            Enter extensions without a dot and separate by spaces.

Optional arguments:
-s SRC, --source SRC        Source folder path.
-d DST, --dest DST          Destination folder path.
-sc, --srccwd               Use current working directory as a source folder.
-dc, --dstcwd               Use current working directory as a destination folder.
-p, --preserve              Preserve source folder structure.
-i, --invert                Process only files without given extensions.
-m, --move                  Move files instead of copying, be careful with this option.
-e FILE [FILE ...],         Exclude one or more files from processing.
--exclude FILE [FILE ...]   Enter filenames with extensions and separate by spaces.
-l, --log                   Create and save log to the destination folder.
-h, --help                  Show this help message and exit.

Examples

asciicast

Changelog

v0.3.0 - 2019-08-22

Added

Changed

  • The code is now divided into separate modules
  • Dots that come with extensions are removed from output folder name. The reason is that folders with a name starting with a dot are considered as hidden on Linux.
  • Log saving indication
  • Name of the logfile

Fixed

  • Issue when paths like /home/user/test and /home/user/test2 were considered as nested which lead to an error.

Compare with v0.2.1

v0.2.1 - 2019-07-16

Added

  • Changelog

Fixed

Compare with v0.2.0

v0.2.0 - 2019-07-15

Added

  • Support of processing several extensions at once
  • --invert option
  • --move option
  • --exclude option

Compare with v0.1.0

License

This project is licensed under the MIT License - see the LICENSE file for details

Acknowledgments

Inspired by the task from Chapter 9 of Automate the Boring Stuff.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Files for slcp, version 0.3.0
Filename, size File type Python version Upload date Hashes
Filename, size slcp-0.3.0-py3-none-any.whl (8.6 kB) File type Wheel Python version py3 Upload date Hashes View
Filename, size slcp-0.3.0.tar.gz (6.8 kB) File type Source Python version None Upload date Hashes View

Supported by

Pingdom Pingdom Monitoring Google Google Object Storage and Download Analytics Sentry Sentry Error logging AWS AWS Cloud computing DataDog DataDog Monitoring Fastly Fastly CDN DigiCert DigiCert EV certificate StatusPage StatusPage Status page