From 2ad95914e0aa2f77511f199833520e95dc315e9d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Kjist=C3=B3f?= Date: Sun, 28 May 2017 20:07:20 +0200 Subject: [PATCH] Add option to disallow special characters. closes #2 --- normalisename.py | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/normalisename.py b/normalisename.py index 243b92c..4af32c7 100755 --- a/normalisename.py +++ b/normalisename.py @@ -4,26 +4,35 @@ from os import rename from os.path import basename, dirname from os.path import join as joinpath from argparse import ArgumentParser +from sys import exit +# parse arguments parser = ArgumentParser(description='Eliminate funky stuff from filenames.') parser.add_argument('--separator', '-s', type=str, nargs='?', default='_', help='Set separator to use (to replace spaces with).') parser.add_argument('--allow', '-a', type=str, nargs='?', action='append', help='Specify a special character to allow (it will not be removed).') +parser.add_argument('--disallow', '-d', type=str, nargs='?', action='append', + help='Specify a special character to disallow (it will removed).') parser.add_argument('--whitelist', '-w', type=str, help='Overwrite default whitelist (format: whitespace separated string).') parser.add_argument('files', type=str, nargs='+', help='File(s) to normalise the name of (relative or absolute path).') args = parser.parse_args() +# verify arguments +if args.disallow: + if args.separator in args.disallow: exit('Disallowing your chosen separator makes no sense!') -# special characters that will not be removed +# declare special characters that will not be removed (spaces are handled elsewhere) whitelist = {' ', '.', '-'} if args.whitelist: whitelist = set(args.whitelist.split()) +# modify whitelist based on arguments whitelist.add(args.separator) if args.allow: whitelist = whitelist.union(set(args.allow)) +if args.disallow: whitelist = whitelist.difference(set(args.disallow)) for path in args.files: