|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
|
Опции темы | Поиск в этой теме |
09.04.2021, 12:19 | #1 |
Пользователь
Регистрация: 02.02.2021
Сообщений: 13
|
Сортировщик фалов по папкам
Чтобы облегчить себе работу, написал макрос на pithon 2.6.6
Задача: В одной директории: - Имеются файлы (чертежей); - Имеются папки (изделий). Файлы нужно поместить в соответсвующие папки, - Сортировка производится по наибольшему совпадению символов в наименованиях файлов и папок от начала; - Если в целевой папке имелся файл с таким - же наименованием, то он заменяется на перемещаемый; - Если число папок с максимальным совпадением символов больше 1, то копирование не производится. - Если число совпадений символов меньше трёх, то копирование также не производится. (для лучшего понимания кода, оставил закомментированные print'ы и комментарии к функциям) Код:
Файлы с именами: DP-1250-2-50-Р Втулка ходовая (Ремонт); DP-1250-2-51 Шайба, Были закинуты в папку с именем: DP-1250-2-52-Р Втулка в сборе. Это произошло потому, что алгоритм производит посимвольное сравнение, и нашёл максимальное совпадение в тексте: "DP-1250-2-5". Исключение – бы составило наличие папки, например, DP-1250-2-53. Решение: Можно, в каждых подобных местах создавать «блокирующие» папки, например, «DP-1250-2-5», чтобы копирования не происходило. |
09.04.2021, 13:07 | #2 |
Пользователь
Регистрация: 02.02.2021
Сообщений: 13
|
Вторая версия сортировщика
Развивая тему, я разработал многоуровневый сортировщик.
В отличие от предыдущего варианта, он перемещает файл дальше по директориям, пока имеется условие его перемещения. За тем, возвращается к исходной директории, и переходит к следующему файлу. Сортировщик так - же не лишён вышеуказанного недостатка. Если у кого - ни будь есть соображения, как его исправить, пишите в ответах. |
09.04.2021, 14:38 | #3 |
Пользователь
Регистрация: 02.02.2021
Сообщений: 13
|
Третья версия сортировщика
Третья версия представляет собой одноуровневый сортировщик с другой логикой сравнения наименований.
Логика заключается в том, что идёт сравнение символов в любых местах наименований файлов и папок. Более подробно - сначала сравниваются первые символы. За тем, с первым символом файла сравнивается второй символ папки, и далее, до конца наименования файла. При первом совпадении символов, сравниваются последующие символы. При прекращении совпадения, алгоритм сравнения возвращается к исходному. Количество совпадений формируется в список, из которого находится максимальное число. Код:
Файл с наименованием «DP-1250-6-1-Р Суппорт поворотный (ремонт)» Был закинут в папку «DP-1250-5 Суппорт поперечный +», потому, как он обнаружил максимальное совпадение в подстроке « Суппорт по». |
09.04.2021, 15:51 | #4 |
Старожил
Регистрация: 23.10.2010
Сообщений: 2,331
|
У меня возник вопрос.
А чё, нельзя разработать стандарт именования файлов в таких разработках? Например: Изделие - код. Детали первого уровня - Код изделия + код детали. И т.д. Пусть это будет первая часть имени. За этой частью следуют поясняющие слова. Но это взгляд профана. За перемещение файлов отвечает нормировщик, который контролирует соответствие именования стандарту и даёт добро на перемещение. Возможно, что это упростит сортировщик и сделает такую операцию более надёжной.
Как-то так, ...
|
09.04.2021, 16:03 | #5 |
Пользователь
Регистрация: 02.02.2021
Сообщений: 13
|
ViktorR, Я так и делаю, именую детали по типу: "Шифр изделия - шифр сборочной единицы - шифр детали (пробел) наименование детали".
А про нормировщик, не понял. Это человек, или программа? |
09.04.2021, 17:58 | #6 | |
Старожил
Регистрация: 20.04.2008
Сообщений: 5,528
|
Цитата:
Шифр изделия - шифр сборочной единицы - шифр детали (пробел)
программа — запись алгоритма на языке понятном транслятору
|
|
09.04.2021, 20:35 | #7 | ||||
Старожил
Регистрация: 23.10.2010
Сообщений: 2,331
|
Цитата:
Цитата:
Но ..., можно использовать символ нижнего подчёркивания, тире или "верблюжью" запись. Цитата:
Цитата:
Код:
Как-то так, ...
|
||||
12.04.2021, 08:59 | #8 |
Пользователь
Регистрация: 02.02.2021
Сообщений: 13
|
ViktorR,
1. У нас на предприятии три разрозненных конструктора. В общую папку чертежи мы не сдаём. 2. Пробелом я отделяю вариант (исполнение) детали. Это бывает не часто. Например, есть вариант детали нового изготовления (ставлю "Н"), или отремонтированная (ставлю "Р"). И то, если деталь разрабатывается в двух и более исполнениях. Наименование файла соответствует шифру чертежа с его наименованием через пробел. 3. Дело в том, что изначально неизвестно количество папок и файлов в директории, и их наименования. Ваше условие подразумевает полное совпадение имён, а такого, в моём случае, быть не может. Ведь у меня директории представляют собой сборочную иерархию. |
12.04.2021, 09:13 | #9 |
Пользователь
Регистрация: 02.02.2021
Сообщений: 13
|
evg_m,
Спасибо большое. Шифр изделия, тире (разделитель), шифр ДСЕ и т.д. Выделять подстроки между разделителями, и сравнивать их по условию полного совпадения. Это позволит избежать ошибок сортировки. Надо как-нибудь и такой сортировщик запилить. |
19.04.2021, 12:32 | #10 |
Пользователь
Регистрация: 02.02.2021
Сообщений: 13
|
Четвёртая версия сортировщика
Это - четвёртая версия сортировщика. Она предназначена специально для работы с шифрами документации. Автор идеи evg_m. Сортировщик одноуровневый (возможно, пока). Принцип работы лежит в сортировке файлов по папкам поблочно, т.е., когда в наименованиях находятся разделители, символы " " или "-", то блоки, ограниченные разделителями (или, между начальными, или конечными разделителями), сравниваются между собой на предмет полного совпадения. Файл попадает в папку с наибольшим числом совпадений блоков в обоих наименованиях. Если наименование файла не имеет указанных разделителей, то сортировка идёт по посимвольному принципу (вариант сортировки прошлых версий). Последний раз редактировалось Антон Облёзин; 19.04.2021 в 12:35. |
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Пузырьковый сортировщик массива | fiver29 | Python | 3 | 04.06.2019 23:02 |
Deiphi 7 ,сортировщик | Karfi | Помощь студентам | 1 | 01.04.2016 13:20 |
многопоточный сортировщик метод слияние | gagarin614 | Помощь студентам | 1 | 21.09.2012 09:23 |
ПЕРЕСТАЕТ РАБОТАТЬ СОРТИРОВЩИК | Cone | Microsoft Office Excel | 5 | 10.08.2010 16:36 |
Сортировщик медиа-файлов нужен. | dim3740 | Фриланс | 3 | 30.03.2010 17:29 |