slcp

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


Keywords
cli, copy, selective, slcp
License
MIT
Install
pip install slcp==0.3.0

Documentation

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.