uniformly change file or directory names
Project description
Introduction
A tool for uniformly change file sor directory names and also support rollback these operations.
In short,fdn is about file names operation.
A Python tool to unify file or directory name.
File or directory name format:
no space in file name(firstly every space will be replaced by an underscore,then multiple consecutive underscores will be reduced to one);
only underscore allowed in file name,all other control characters will be replaced by underscore;
multiple consecutive underscores will be reduced to one;
underscore at the beginning of file name will be deleted;
underscore at the end of file name will be deleted;
keep bash special parameters in file name;
some terminology will remained(update continuously) ,such as USB,PCIe …
Installation
To install fdn via conda:
$ conda install -c hobbymarks fdn
To install fdn via pip:
$ pip install fdn
Usage/参数
Options:
Usage: fdn [OPTIONS] [PATH]... Files in PATH will be changed file names unified. Options: -d, --max-depth INTEGER Set travel directory tree with max depth. [default: 1] -t, --file-type [file|dir] Set type.If 'file',operations are only valid for file,If 'dir',operations are only valid for directory. [default: file] -i, --in-place Changes file name in place. [default: False] -c, --confirm Need confirmation before change to take effect. [default: False] -l, --is-link Follow the real path of a link. [default: False] -f, --full-path Show full path of file.Relative to the input path. [default: False] -a, --absolute-path Show absolute path of file. [default: False] -r, --roll-back To roll back changed file names. [default: False] -o, --overwrite Overwrite exist files. [default: False] -p, --pretty Try to pretty output. [default: False] -e, --enhanced-display Enhanced display output. [default: False] --version Show the version and exit. -h, --help Show this message and exit.
ATTENTION!
When you run fdn ,you will see two kinds of output:
First Kind
sample▯file▯name -->sample_file_name
The output means: a file name sample file name will be changed to sample_file_name
--> means in dry run mode ,operation not take effect.The character ▯ means space ,every space will be replaced by one ▯.
The character ``▯`` is only for the convenience of visual contrast and only display in output.
or
Second Kind:
sample▯file▯name ==>sample_file_name
The output means: a file named sample file name has been changed to sample_file_name
==> means operation have taken effect.
all deleted character will be display as red color ,such as the original file name:
sample ▯ file ▯ name
all added character will be diplayed as green color ,such as the changed file name:
sample * file * name
Options
-d option
$ fdn tgt_root -f -t dir -d 2 tgt_root/test directory/$0_T\▯Only -->tgt_root/test directory/$0_T_Only tgt_root/!临时文件夹 -->tgt_root/LSW临时文件夹 tgt_root/_is▯dir▯% -->tgt_root/Is_dir_% tgt_root/测试@#文件夹 -->tgt_root/CS测试_文件夹 tgt_root/test▯directory -->tgt_root/Test_Directory tgt_root -->Tgt_Root ******************************************************************** In order to take effect,add option '-i' or '-c' $ fdn tgt_root -f -t dir -d 1 tgt_root/!临时文件夹 -->tgt_root/LSW临时文件夹 tgt_root/_is▯dir▯% -->tgt_root/Is_dir_% tgt_root/测试@#文件夹 -->tgt_root/CS测试_文件夹 tgt_root/test▯directory -->tgt_root/Test_Directory tgt_root -->Tgt_Root ******************************************************************** In order to take effect,add option '-i' or '-c'
-t option
$ fdn tgt_root -f -t dir tgt_root/!临时文件夹 -->tgt_root/LSW临时文件夹 tgt_root/测试@#文件夹 -->tgt_root/CS测试_文件夹 tgt_root/test▯directory -->tgt_root/Test_Directory tgt_root/_is▯dir▯% -->tgt_root/Is_dir_% ******************************************************************** In order to take effect,add option '-i' or '-c' $ fdn tgt_root -f tgt_root/thi_Is_File_%.mp4 -->tgt_root/Thi_Is_File_%.mp4 tgt_root/$0▯▯测试用文件.html -->tgt_root/$0_测试用文件.html ******************************************************************** In order to take effect,add option '-i' or '-c'
-i option
$ fdn tgt_root/\$0\ \ 测试用文件.html -io $0▯▯测试用文件.html ==>$0_测试用文件.html
-c option
$ fdn tgt_root/\$0\ \ 测试用文件.html -c $0 测试用文件.html Please confirm(y/n/A/q) [no]: $0▯▯测试用文件.html -->$0_测试用文件.html $ fdn tgt_root/\$0\ \ 测试用文件.html -c $0 测试用文件.html Please confirm(y/n/A/q) [no]: y $0▯▯测试用文件.html ==>$0_测试用文件.html
-l option
This Option
-f option
$ fdn tgt_root/\$0\ \ 测试用文件.html $0▯▯测试用文件.html -->$0_测试用文件.html ******************************************************************** In order to take effect,add option '-i' or '-c' $ fdn tgt_root/\$0\ \ 测试用文件.html -f tgt_root/$0▯▯测试用文件.html -->tgt_root/$0_测试用文件.html ******************************************************************** In order to take effect,add option '-i' or '-c'
-a option
$ fdn a▯Test-file.txt -->A_Test_File.txt ******************************************************************** In order to take effect,add option '-i' or '-c' $ fdn -a /home/hma/a▯Test-file.txt -->/home/hma/A_Test_File.txt ******************************************************************** In order to take effect,add option '-i' or '-c'
-r option
$ fdn tgt_root/\$0_测试用文件.html -r $0_测试用文件.html -->$0▯▯测试用文件.html ******************************************************************** In order to take effect,add option '-i' or '-c'
-o option
$ fdn tgt_root/\$0\ \ 测试用文件.html -i Exist:$0_测试用文件.html Skipped:$0 测试用文件.html With option '-o' to enable overwrite. $ fdn tgt_root/\$0\ \ 测试用文件.html -io $0▯▯测试用文件.html ==>$0_测试用文件.html
-p option
$ fdn tgt_root thi_Is_File_%.mp4 -->Thi_Is_File_%.mp4 $0▯▯测试用文件.html -->$0_测试用文件.html ******************************************************************** In order to take effect,add option '-i' or '-c' $ fdn tgt_root -p thi_Is_File_%.mp4 -->Thi_Is_File_%.mp4 $0▯▯测试用文件.html -->$0 _测试用文件.html ******************************************************************** In order to take effect,add option '-i' or '-c'
-e option
$ fdn tgt_root/\$0_测试用文件.html -re $0_测试用文件.html -->$0▯▯测试用文件.html ******************************************************************** In order to take effect,add option '-i' or '-c'
Example/示例
change one file name/修改一个文件名
$ fdn tgt_root/\$0\ 测试用文件.html $0▯测试用文件.html -->$0_测试用文件.html ******************************************************************** In order to take effect,add option '-i' or '-c'
change files in dir/修改指定目录下文件名
$ fdn tgt_root $0▯测试用文件.html -->$0_测试用文件.html This▯is▯a▯Test▯file.pdf -->This_Is_A_Test_File.pdf _thi▯is▯file▯%.mp4 -->thi_Is_File_%.mp4 这是测试文件▯.jpg -->ZSC这是测试文件.jpg ******************************************************************** In order to take effect,add option '-i' or '-c'
rollback one file changed/取消一个文件名的修改
$ fdn tgt_root/\$0_测试用文件.html -r $0_测试用文件.html -->$0▯测试用文件.html ******************************************************************** In order to take effect,add option '-i' or '-c'
rollback files changed in dir/取消目录下文件名的修改
$ fdn tgt_root -r This_Is_A_Test_File.pdf -->This▯is▯a▯Test▯file.pdf ZSC这是测试文件.jpg -->这是测试文件▯.jpg thi_Is_File_%.mp4 -->_thi▯▯is▯▯▯file▯%.mp4 $0_测试用文件.html -->$0▯测试用文件.html ******************************************************************** In order to take effect,add option '-i' or '-c'
joint work with fd/与 fd 工具联合工作
fd is a program to find entries in your filesytem. It is a simple, fast and user-friendly alternative to find.*
$ fdfind -HIi html -X fdn $0▯▯测试用文件.html -->$0_测试用文件.html ******************************************************************** In order to take effect,add option '-i' or '-c' $ fdfind -HIi html -X fdn {} -pf tgt_root/$0▯▯测试用文件.html -->tgt_root/$0 _测试用文件.html ******************************************************************** In order to take effect,add option '-i' or '-c'
简介
一个小工具,用于日常统一更改文件(或者文件夹)名称
用Python 编写,用于日常统一更改资料的文件名。
目前的具体格式:
文件名不保留空格(首先空格会被替换为下划线,之后根据是否存在连续下划线来决定缩减);
文件名中只保留下划线字符,其余的控制类字符会被替换为下划线;
多个连续的下划线字符会被缩减为一个下划线;
如果文件名首字符为下划线将会被删除;
除去扩展名后的文件名如果最后一个字符是下划线也会被删除;
在文件名中保留 bash special parameters ;
文件名中包含的一些术语会保留术语本身的大小写写法(持续更新中…),例如 USB,PCIe 等;
安装
建议使用conda 进行安装:
$ conda install -c hobbymarks fdn
使用pip 进行安装:
$ pip install fdn
参数
请前往Usage/参数 查看
示例
参考 Example/示例 查看
Project details
Release history Release notifications | RSS feed
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 fdn-2022.6.26.2937.tar.gz
.
File metadata
- Download URL: fdn-2022.6.26.2937.tar.gz
- Upload date:
- Size: 786.3 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.1 CPython/3.10.5
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 2162afd918964e8885416894eaf6def170edc1079793b84aa85dcd6ae4f8f2e5 |
|
MD5 | 79a970722318299970cdf76ad095ff5a |
|
BLAKE2b-256 | d8f9ab715c3158a07b8a61678a2a91ea0d3f11021c43361f3402a6602aa079a6 |
File details
Details for the file fdn-2022.6.26.2937-py2.py3-none-any.whl
.
File metadata
- Download URL: fdn-2022.6.26.2937-py2.py3-none-any.whl
- Upload date:
- Size: 782.0 kB
- Tags: Python 2, Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.1 CPython/3.10.5
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 2d18033fb686e0b37edff2c3147cddd1dc9842e22486def10ae3e499aaae94ee |
|
MD5 | 6a399f06ca12675167651dd1b22a5f5c |
|
BLAKE2b-256 | 5076712dac7881663aca5bd2dda95ada9c233fc1c9db29202199c5c8879de0c5 |