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.

Source Distribution

slcp-0.3.0.tar.gz (6.8 kB view details)

Uploaded Source

Built Distribution

slcp-0.3.0-py3-none-any.whl (8.6 kB view details)

Uploaded Python 3

File details

Details for the file slcp-0.3.0.tar.gz.

File metadata

  • Download URL: slcp-0.3.0.tar.gz
  • Upload date:
  • Size: 6.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/0.12.16 CPython/3.7.4 Linux/5.0.0-25-generic

File hashes

Hashes for slcp-0.3.0.tar.gz
Algorithm Hash digest
SHA256 5215788e6fbd8cf34906538746fd35bf56a3bc1fc2ab92560c55db54f70efca5
MD5 9eeb3ec6ea265692350ace40afe953e0
BLAKE2b-256 175b4660dc293789852a633334b80d5a15a856c742f47f72fab8389e5a38ff95

See more details on using hashes here.

File details

Details for the file slcp-0.3.0-py3-none-any.whl.

File metadata

  • Download URL: slcp-0.3.0-py3-none-any.whl
  • Upload date:
  • Size: 8.6 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/0.12.16 CPython/3.7.4 Linux/5.0.0-25-generic

File hashes

Hashes for slcp-0.3.0-py3-none-any.whl
Algorithm Hash digest
SHA256 e980b1db94c2a7eb8a2f8fa1dcf2cd9630abd1dbb12b0754274264016e335077
MD5 795ddd448180ea5b9d352bea3cae05d6
BLAKE2b-256 f9a33d74cae1120284a47d47398d3598b850ae7c101e3a0efb4332dfde4a39b6

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page