THG.RU | \"Поиск\" Поиск \"Поиск\" | Новости | Видеокарты | Процессоры | Материнские платы | Мониторы | Аудио/видео | HDD и CD/DVD | Собери сам | Игры | Софт | Домашний ПК


Клуб экспертов THG.ru   

Вернуться   Клуб экспертов THG.ru > Софт > Прикладное программное обеспечение

Регистрация Правила форума FAQ форума Справка Пользователи Поиск Сообщения за день Все разделы прочитаны

Прикладное программное обеспечение Мобильный и сетевой софт, Web-движки, Исследования и разработка, Образовательное и справочное ПО

Ответ
 
Опции темы Опции просмотра
Старый 21.11.2019, 12:33   #1
Меню пользователя 93.MAKCUM
Пользователь
  
Question Нужна помощь.

Есть дериктория папок, в папках подпапки в подпапках еще подпапки и так далее. В некоторых папках есть файлы, в некоторых файлы и папки, а в некоторых только папки. Нужно сделать как на прикрепленных изображениях.
Как оно есть:
Как оно есть.jpg
Как нужно:
Как нужно.jpg

Перетаскивать руками не предлагать, не те масштабы.
93.MAKCUM вне форума   Ответить с цитированием
Старый 21.11.2019, 14:33   #2
Меню пользователя Staind
Супер-Модератор
Эксперт клуба THG | Фото
 
Аватар для Staind
  
Цитата:
Сообщение от 93.MAKCUM Посмотреть сообщение
Перетаскивать руками не предлагать, не те масштабы.
Вы уверены, что названия папок и подпапок не будут совпадать в процессе перемещения в корренной каталог?

Добавлено через 57 секунд
Если да, то можно сделать небольшой скрипт для решения этой задачи с применением рекурсии.
__________________
Ryzen 1700X + Noctua NH-D15 / ASRock AB350 Pro4 / Ballistix 32GB 3066CL16 / Samsung SM951 512GB MLC NVMe + Seagate Barracuda 2TB 7200.14 / ASUS GeForce 9600GT 512MB GDDR3 / Seasonic Prime 650W Titanium / Corsair Graphite 780T (White)
Решение проблемы: "В процессе регистрации по e-mail"

Staind вне форума   Ответить с цитированием
Старый 21.11.2019, 14:44   #3
Меню пользователя 93.MAKCUM
Пользователь
  
Цитата:
Сообщение от Staind Посмотреть сообщение
Вы уверены, что названия папок и подпапок не будут совпадать в процессе перемещения в корренной каталог?

Добавлено через 57 секунд
Если да, то можно сделать небольшой скрипт для решения этой задачи с применением рекурсии.
Думаю будут и совпадающие. Какие есть варианты? Если использовать Ваш скрипт то какие могут быть потери? Может я как нибудь изловчусь через резрвные копии, поиск дубликатов и тд.
93.MAKCUM вне форума   Ответить с цитированием
Старый 21.11.2019, 15:07   #4
Меню пользователя Staind
Супер-Модератор
Эксперт клуба THG | Фото
 
Аватар для Staind
  
Да нет, это можно предусматреть, чтобы при совпадении названий директорий она переназывалась

Добавлено через 1 минуту
В принципе есть вариант сделать слияние файлов в папках. например при совпадении названий папок - файлы из дубля просто перемещаются в уже существующую папку в корне.
__________________
Ryzen 1700X + Noctua NH-D15 / ASRock AB350 Pro4 / Ballistix 32GB 3066CL16 / Samsung SM951 512GB MLC NVMe + Seagate Barracuda 2TB 7200.14 / ASUS GeForce 9600GT 512MB GDDR3 / Seasonic Prime 650W Titanium / Corsair Graphite 780T (White)
Решение проблемы: "В процессе регистрации по e-mail"

Staind вне форума   Ответить с цитированием
Старый 21.11.2019, 15:14   #5
Меню пользователя 93.MAKCUM
Пользователь
  
Цитата:
Сообщение от Staind Посмотреть сообщение
Да нет, это можно предусматреть, чтобы при совпадении названий директорий она переназывалась

Добавлено через 1 минуту
В принципе есть вариант сделать слияние файлов в папках. например при совпадении названий папок - файлы из дубля просто перемещаются в уже существующую папку в корне.
Если название папки будет оставаться прежним но добавится любой символ в конце то это хороший вариант... Например "новая папка 1" >> "новая папка 1(1)" если переименовывать дубли мне важно чтобы они были рядом при сортировке по имени.

Слияние папок я смогу думаю сам сделать. Очень благодарен!
93.MAKCUM вне форума   Ответить с цитированием
Старый 21.11.2019, 21:44   #6
Меню пользователя Staind
Супер-Модератор
Эксперт клуба THG | Фото
 
Аватар для Staind
  
93.MAKCUM, написал код. Честно говоря особо не тестировал. Теоретически должно сработать. Но лучше на всякий случай сделайте бекап (сожмите все в архив, например)

Как запускать:
1. назвать коренную папку в которой содержаться остальные папки для перемещения "1" (без кавычек. просто единичка)
2. надо извлечь файл скрипта "recursively_folder_mover.py" (из Zip-архива в приложении к этому посту) в папку, в которой находится папка "1" из первого пункта.
3. скачать и установить интерпретатор языка Python в ходе инсталляции обязательно отметив опцию "Add Python 3.7 to PATH".
4. перезагрузить систему
5. теперь запускаем сам код программы двойным кликом по скрипту "recursively_folder_mover.py". если предыдущие шаги выполнены верно - все должно быть сделано и в новосозданной папке (создается программой автоматически с названием "output_dir") должны появится все папки, подпапки, подподпапки и так далее, но уже в одноуровневом виде.

ВАЖНО! В идеале у Вас до старта процедуры должны быть только папка "1" и "recursively_folder_mover.py". Больше ничего в этой папке быть не должно.
Вложения
Тип файла: zip recursively_folder_mover.zip (493 байт, 5 просмотров)
__________________
Ryzen 1700X + Noctua NH-D15 / ASRock AB350 Pro4 / Ballistix 32GB 3066CL16 / Samsung SM951 512GB MLC NVMe + Seagate Barracuda 2TB 7200.14 / ASUS GeForce 9600GT 512MB GDDR3 / Seasonic Prime 650W Titanium / Corsair Graphite 780T (White)
Решение проблемы: "В процессе регистрации по e-mail"


Последний раз редактировалось Staind, 22.11.2019 в 04:55.
Staind вне форума   Ответить с цитированием
Старый 21.11.2019, 22:48   #7
Меню пользователя 93.MAKCUM
Пользователь
  
Цитата:
Сообщение от Staind Посмотреть сообщение
93.MAKCUM, написал код. Честно говоря особо не тестировал. Теоретически должно сработать. Но лучше на всякий случай сделайте бекап (сожмите все в архив, например)

Как запускать:
1. назвать коренную папку в которой содержаться остальные папки для перемещения "1" (без кавычек. просто единичка)
2. надо извлечь файл скрипта "recursively_folder_mover.py" (из Zip-архива в приложении к этому посту) в папку уровнем выше той, в которой находятся файлы для перемещения.
3. скачать и установить интерпретатор языка Python в ходе инсталляции обязательно отметив опцию "add path".
4. перезагрузить систему
5. теперь запускаем сам код программы двойным кликом по скрипту "recursively_folder_mover.py". если предыдущие шаги выполнены верно - все должно быть сделано и в новосозданной папке (создается программой автоматически с названием "output_dir") должны появится все папки, подпапки, подподпапки и так далее, но уже в одноуровневом виде.

ВАЖНО! В идеале у Вас до старта процедуры должны быть только папка "1" и "recursively_folder_mover.py". В идеале больше ничего другого быть в этой директории со скриптом и рабочей папки не должно.
Большое спасибо, у меня сейчас нет времени я позже думаю что напишу! Спасибо!
93.MAKCUM вне форума   Ответить с цитированием
Старый 23.11.2019, 15:19   #8
Меню пользователя 93.MAKCUM
Пользователь
  
Цитата:
Сообщение от Staind Посмотреть сообщение
93.MAKCUM, написал код. Честно говоря особо не тестировал. Теоретически должно сработать. Но лучше на всякий случай сделайте бекап (сожмите все в архив, например)
.
Забыл про бэкап, папки расфасовало. Сейчас буду чистить ненужное. Спасибо! Немало времени искал программу могущее это... Возможно Ваш скрипт это новинка, попробуйте поискать подобное.

Последний раз редактировалось 93.MAKCUM, 23.11.2019 в 15:23.
93.MAKCUM вне форума   Ответить с цитированием
Старый 24.11.2019, 01:12   #9
Меню пользователя Staind
Супер-Модератор
Эксперт клуба THG | Фото
 
Аватар для Staind
  
Цитата:
Сообщение от 93.MAKCUM Посмотреть сообщение
Немало времени искал программу могущее это... Возможно Ваш скрипт это новинка, попробуйте поискать подобное.
Ради интереса поискал. Таких программ мне найти не удалось. Собственно это довольно ожидаемо. Слишком уж специфическая задача.

Рад что помог.
__________________
Ryzen 1700X + Noctua NH-D15 / ASRock AB350 Pro4 / Ballistix 32GB 3066CL16 / Samsung SM951 512GB MLC NVMe + Seagate Barracuda 2TB 7200.14 / ASUS GeForce 9600GT 512MB GDDR3 / Seasonic Prime 650W Titanium / Corsair Graphite 780T (White)
Решение проблемы: "В процессе регистрации по e-mail"

Staind вне форума   Ответить с цитированием
Ответ


Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
 
Опции темы
Опции просмотра

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Справочник словарей
Словари русского языка - www.gramota.ru Яndex - Словари Википедия - ru.wikipedia.org

Часовой пояс GMT +4, время: 00:16.


Powered by: vBulletin, ©2000 - 2007, Jelsoft Enterprises Limited.
Перевод: zCarot
Распространение информации возможно только с письменного разрешения администрации издания.

THG.ru ("Русский Tom's Hardware Guide") входит в международную сеть TG Publishing

РЕКЛАМА

Rambler's Top100 Рейтинг@Mail.ru