def main(*args):
print(args)
if __name__ == '__main__':
main(sys.argv[1:])
def main(*args):
print(args)
if __name__ == '__main__':
parser = argparse.ArgumentParser(description='--- This skript delete ".raw" files if the ".jpg" files of the same '
'name are deleted ---', epilog='---')
parser.add_argument('path', help='Path to the directory')
parser.add_argument('-a', '--all', dest='dir', action='store_true',
help='Sort in subfolders. Default: Only this folder.')
parser.add_argument('-d', '--del', dest='dell', action='store_true',
help='Delete "raw" files. Default: Move to "raw" folder.')
parser.add_argument('--DEL_ALL', dest='del_all', action='store_true',
help='Delete all "raw" files.')
parser.add_argument('-f', '--format', dest='format', default='.raw',
help='Raw file format. Example ".raw". Default: .raw')
parser.add_argument('-i', '--img', dest='img', default='.jpg',
help='Image file format. Example ".jpg". Default: .jpg.')
arg_parser = parser.parse_args()
main(arg_parser)
Например, я бы в main передавал вектор аргументов с умолчанием в виде None. При передаче None доставал бы вектор из sys.argv[1:], как это делает парсер аргументов внутри, а при передаче конкретного вектора, использовал бы его. Это помогло бы протестировать парсинг параметров, если до таких автотестов дошли бы руки.
Зачем здесь бесконечный цикл и собственно зачем тут вложенные функции
#Если файл в папке raw_file уже существует, создать копию i = 1 while True: if not pathlib.Path(file.parent / 'raw_files' / f'{p.stem}({i}){file.suffix}').is_file(): pathlib.Path(file).replace(file.parent / 'raw_files' / f'{file.stem}({i}){file.suffix}') break else: i += 1
Ага, вообще ничего не находит.