Copy all files with given extensions from a directory and its subfolders to another directory.
Project description
Selective Copy v0.3.0
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
Changelog
v0.3.0 - 2019-08-22
Added
- Black code style
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.
v0.2.1 - 2019-07-16
Added
- Changelog
Fixed
v0.2.0 - 2019-07-15
Added
- Support of processing several extensions at once
- --invert option
- --move option
- --exclude option
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
Built Distribution
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
Algorithm | Hash digest | |
---|---|---|
SHA256 | 5215788e6fbd8cf34906538746fd35bf56a3bc1fc2ab92560c55db54f70efca5 |
|
MD5 | 9eeb3ec6ea265692350ace40afe953e0 |
|
BLAKE2b-256 | 175b4660dc293789852a633334b80d5a15a856c742f47f72fab8389e5a38ff95 |
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
Algorithm | Hash digest | |
---|---|---|
SHA256 | e980b1db94c2a7eb8a2f8fa1dcf2cd9630abd1dbb12b0754274264016e335077 |
|
MD5 | 795ddd448180ea5b9d352bea3cae05d6 |
|
BLAKE2b-256 | f9a33d74cae1120284a47d47398d3598b850ae7c101e3a0efb4332dfde4a39b6 |