Товарищи, нужен совет.
Задача:
Скопировать определённые файлы из известной папки в другую известную папку. Знаю точно название директорий и название файлов.
Загвоздка: файлов 50-100штук и у них разные названия. Однако, названия имеют общий элемент (например название таски) а остальное отличается. Просто копировать файлы по одному, постоянно редача название долго. Как можно ускорить процесс? (Я новичек)
Upd: в изначальной папке хранятся и другие файлы, копировать которые не надо
Подскажите плиз кто как делал бы)
Для решения задачи копирования определенных файлов из одной папки в другую можно использовать скрипты на Python или Bash. Оба варианта приведены ниже:
Python скрипт
import os
import shutil
# Укажите путь к исходной папке
source_folder = r"C:\путь\к\исходной\папке"
# Укажите путь к целевой папке
destination_folder = r"C:\путь\к\целевой\папке"
# Укажите общий элемент в названии файлов
common_element = "название_таски"
# Перебираем все файлы в исходной папке
for filename in os.listdir(source_folder):
# Проверяем, содержит ли имя файла общий элемент
if common_element in filename:
# Формируем полные пути для исходного и целевого файлов
source_file = os.path.join(source_folder, filename)
destination_file = os.path.join(destination_folder, filename)
# Копируем файл
shutil.copy2(source_file, destination_file)
print(f"Скопирован файл: {filename}")
print("Копирование завершено!")
Чтобы использовать этот Python-скрипт:
- Сохраните его в файл с расширением
.py
, напримерcopy_files.py
. - Отредактируйте переменные
source_folder
,destination_folder
иcommon_element
, указав соответствующие пути и общий элемент в названии файлов. - Запустите скрипт с помощью Python.
Bash скрипт
#!/bin/bash
# Укажите путь к исходной папке
source_folder="/путь/к/исходной/папке"
# Укажите путь к целевой папке
destination_folder="/путь/к/целевой/папке"
# Укажите общий элемент в названии файлов
common_element="название_таски"
# Перебираем все файлы в исходной папке, содержащие общий элемент
for file in "$source_folder"/*"$common_element"*; do
# Проверяем, существует ли файл (это нужно, если нет совпадений)
if [ -f "$file" ]; then
# Получаем только имя файла без пути
filename=$(basename "$file")
# Копируем файл
cp "$file" "$destination_folder/$filename"
echo "Скопирован файл: $filename"
fi
done
echo "Копирование завершено!"
Чтобы использовать этот Bash-скрипт:
- Сохраните его в файл, например
copy_files.sh
. - Отредактируйте переменные
source_folder
,destination_folder
иcommon_element
, указав соответствующие пути и общий элемент в названии файлов. - Сделайте скрипт исполняемым с помощью команды:
chmod +x copy_files.sh
- Запустите скрипт:
./copy_files.sh
Оба скрипта выполняют одну и ту же задачу:
- Определяют пути к исходной и целевой папкам.
- Задают общий элемент в названии файлов.
- Перебирают файлы в исходной папке.
- Копируют файлы, содержащие общий элемент в названии, в целевую папку.
- Выводят сообщения о скопированных файлах и завершении процесса.
Выбор между Python и Bash зависит от вашей операционной системы, уровня комфорта с каждым языком и конкретных требований задачи. Python может быть более удобным для Windows и для тех, кто знаком с этим языком, в то время как Bash отлично подходит для Unix-подобных систем и может быть более эффективным для работы с файловой системой.