Форум программистов, компьютерный форум, киберфорум
Python для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.67/3: Рейтинг темы: голосов - 3, средняя оценка - 4.67
0 / 0 / 0
Регистрация: 20.03.2024
Сообщений: 16

Копирование файлов из вложенных папок

21.03.2024, 20:20. Показов 804. Ответов 2
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Доброго времени суток! Только начинаю изучать Python, делаю первый прикладной проект. Помогите, пожалуйста.

Есть папки со следующей структурой: Главная папка/Подпапки/Подпапки/Файлы Excel

Требуется создать в папке Главная папка новую папку и скопировать в неё Файлы Excеl, начинающиеся на определнное слово.
Хочется сделать функцию универсальной, чтобы она работала в любой структуре папок, всегда искала файлы Excel в самой глубокой папке.

После долгих мучений удалось сварганить работающую версию кода. Мне он кажется очень длинным и малопонятным. Есть ли более компактный вариант? Желательно с библиотекой pathlib. Вроде бы элементарное действие. Но входе написания то копирование не начиналось, то после копирования цикл повторялся и перебор папок шел по второму кругу.

Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
from pathlib import Path
import shutil
 
def copy_excel_files(source_path, destination_path):
    for item in source_path.iterdir():
        if item.is_file() and item.suffix == '.xlsx' and item.stem.startswith("Data"):
            destination_file_path = destination_path / item.name
            if not destination_file_path.exists():
                shutil.copy(item, destination_file_path)
        elif item.is_dir():
            copy_excel_files(item, destination_path)
 
def main():
    main_folder_path = Path(input("Введите путь к главной папке: "))
    new_folder_path = main_folder_path / "ХХХ"
    new_folder_path.mkdir(exist_ok=True)
 
    copy_excel_files(main_folder_path, new_folder_path)
 
    print("Готово!")
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
21.03.2024, 20:20
Ответы с готовыми решениями:

Как вывести список файлов внутри вложенных папок?
Здравствуйте. Пытаюсь изучать питон и ооп в целом. Задача: вывести список файлов внутри вложенных папок. Получилось к сожалению только...

Сканирование папок и копирование новых появившихся файлов на windows в python
Друзья хочу реализовать вот такое непростое для меня решение, может ли питон смотреть за файлами в определенных папках. например если...

Пакет с множеством вложенных папок
Всем доброго времени суток! Не нашел подходящего раздела, поэтому пишу здесь. Суть проблемы следующая: я создал пакет с вот такой...

2
1712 / 579 / 76
Регистрация: 10.04.2009
Сообщений: 9,328
21.03.2024, 21:25
присмотритесь к glob
0
Эксперт PythonЭксперт Java
19530 / 11067 / 2931
Регистрация: 21.10.2017
Сообщений: 23,294
22.03.2024, 15:09
sir_pit, рекурсивно перебираешь все содержимое основной папки, требуемые имена файлов с полным путем складываешь в список. Цикл по этому списку - копирование.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
22.03.2024, 15:09
Помогаю со студенческими работами здесь

Копирование вложенных файлов и папок
Всем привет. Нужен скрипт который выполняет копирование из одной папки в другую, в том числе вложенные файлы и папки. То есть выполняет...

Копирование файлов из вложенных папок с параметрами даты
Добрый вечер. Прошу помощи в реализации следующей задачи. С помощью bat файла необходимо запустить копирование файлов. Варианты...

Копирование папок целиком, а не только вложенных в них
private static void DirectoryCopy(string sourceDirName, string destDirName, bool copySubDirs) { // Получение...

Список папок и вложенных файлов
имеется одна корневая папка, в ней список папок, имя каждой папки это дата, например 19.11.2016. В каждой папке имеется список файлов. В...

Рекурсивный обход вложенных папок и файлов
Напишите рекурсивный метод, который в качестве параметра принимает строку с описанием пути к некоторой папке на диске, рекурсивно обходит...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Новые блоги и статьи
Жизнь в неопределённости
kumehtar 23.03.2026
Жизнь — это постоянное существование в неопределённости. Например, даже если у тебя есть список дел, невозможно дойти до точки, где всё окончательно завершено и больше ничего не осталось. В принципе,. . .
Модель здравоСохранения: работники работают быстрее после её введения.
anaschu 23.03.2026
geJalZw1fLo Корпорация до введения программа здравоохранения имела много невыполненных работниками заданий, после введения программы количество заданий выросло. Но на выплатах по больничным это. . .
1С: Контроль уникальности заводского номера
Maks 23.03.2026
Алгоритм контроля уникальности заводского (или серийного) номера на примере документа выдачи шин для спецтехники с табличной частью. Данные берутся из регистра сведений, по которому настроено. . .
Хочу заставить корпорации вкладываться в здоровье сотрудников: делаю мат модель здравосохранения
anaschu 22.03.2026
e7EYtONaj8Y Z4Tv2zpXVVo https:/ / github. com/ shumilovas/ med2. git
1С: Программный отбор элементов справочника по группе
Maks 22.03.2026
Установка программного отбора элементов справочника "Номенклатура" из модуля формы документа. В качестве фильтра для отбора справочника служит группа номенклатуры. Отбор по наименованию группы. . .
Как я обхитрил таблицу Word
Alexander-7 21.03.2026
Когда мигает курсор у внешнего края таблицы, и нам надо перейти на новую строку, а при нажатии Enter создается новый ряд таблицы с ячейками, то мы вместо нервных нажатий Энтеров мы пишем любые буквы. . .
Krabik - рыболовный бот для WoW 3.3.5a
AmbA 21.03.2026
без регистрации и смс. Это не торговля, приложение не содержит рекламы. Выполняет свою непосредственную задачу - автоматизацию рыбалки в WoW - и ничего более. Однако если админы будут против -. . .
1С: Программный отбор элементов справочника по значению перечисления
Maks 21.03.2026
Установка программного отбора элементов справочника "Сотрудники" из модуля формы документа. В качестве фильтра для отбора служит значение перечислений. / / Событие "НачалоВыбора" реквизита на форме. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru