Форум программистов, компьютерный форум, киберфорум
Python: Решение задач
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
1 / 1 / 0
Регистрация: 01.09.2019
Сообщений: 19

Прогресс копирования файла

16.07.2024, 13:57. Показов 577. Ответов 4
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Добрый день! Подскажите пожалуйста пишу скрипт на питоне для копирования файлов, собственно бэкапы складываю в одно место, т.к. файлы большие не хочется смотреть в пустую консоль, поэтому хочу прикрутить прогресс бар, приглянулся alive_progress, может кто знает и умеет как его прикрутить к процессу копирования?
Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
from pathlib import Path
import glob
from alive_progress import alive_bar
from alive_progress import alive_it
import time
import shutil
 
src_path = Path("D:/Отсюда/")
dst_path = Path("D:/Сюда/")
for file_namesize in src_path.glob('*.*'):
    sizefiles = file_namesize.stat().st_size
    for x in ['bytes', 'KB', 'MB', 'GB', 'TB']:
        if sizefiles < 1024.0:
            sizefiles = "%3.1f %s" % (sizefiles,x)
            break
        sizefiles /= 1024.0
shutil.copy2(file_namesize, dst_path)
Вот есть код на котором я тестирую, тут только само копирование и взял с интернета, что бы выводить красивый размер файла, хотел прикрутить его к прогресс бару.
Спасибо заранее за ваши ответы! Буду рад любой подсказке.
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
16.07.2024, 13:57
Ответы с готовыми решениями:

Прогресс бар для копирования файлов
Всем привет. Писал скриптик для копирования файлов и столкнулся с такой проблемой, что при копировании больших файлов консоль висит...

Отобразить прогресс перемещения или копирования файла (CopyFileEx или MoveFileWithProgress)
Добрый день! Хочу при перемещении файла отображать прогресс, например в ProgressBar. Использую функцию MoveFileWithProgress. Знаю, там...

Получить прогресс копирования
Есть асинхронный метод копирования , не подскажите как получить процесс(тюе сколько уже скопированно) уже скопировал private async...

4
 Аватар для andrey_f
884 / 537 / 228
Регистрация: 21.02.2011
Сообщений: 5,705
16.07.2024, 14:36
что то типо такого должно быть
Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
from pathlib import Path
import shutil
from alive_progress import alive_bar
 
src_path = Path("D:/Отсюда/")
dst_path = Path("D:/Сюда/")
 
file_list = list(src_path.glob('*.*'))
 
# Создаем прогресс бар
with alive_bar(len(file_list)) as bar:
    for file_name in file_list:
        # Копируем файл
        shutil.copy2(file_name, dst_path)
        # Обновляем прогресс бар
        bar()
 
print("Копирование файлов завершено")
1
1 / 1 / 0
Регистрация: 01.09.2019
Сообщений: 19
16.07.2024, 14:46  [ТС]
Спасибо Огромное! Оно правда работает! А можно как-то сделать, что бы бар зависел не от кол-ва файлов в папке, а от размера каждого? Или целиком размера файлов отфильтрованных glob'ом. И если файлов в папке больше одного, создавать бар для каждого файла в отдельности? Или так не получится?
0
 Аватар для andrey_f
884 / 537 / 228
Регистрация: 21.02.2011
Сообщений: 5,705
16.07.2024, 15:17
Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
import os
from pathlib import Path
import shutil
from alive_progress import alive_bar
 
src_path = Path("D:/Отсюда/")
dst_path = Path("D:/Сюда/")
 
file_list = list(src_path.glob('*.*'))
 
# Создаем прогресс бар для каждого файла
for file_name in file_list:
    file_size = os.path.getsize(file_name)
    with alive_bar(file_size) as bar:
        with open(file_name, 'rb') as input_file:
            with open(dst_path / file_name.name, 'wb') as output_file:
                shutil.copyfileobj(input_file, output_file, bar=bar)
 
print("Копирование файлов завершено")
1
1 / 1 / 0
Регистрация: 01.09.2019
Сообщений: 19
16.07.2024, 15:32  [ТС]
File "d:\VS Code Project\hello.py", line 20, in <module>
shutil.copyfileobj(input_file, output_file,bar=bar)
TypeError: copyfileobj() got an unexpected keyword argument 'bar'

Полоса появляется с зависимостью от размера файла, но ругается на копирование.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
16.07.2024, 15:32
Помогаю со студенческими работами здесь

Прогресс-бар копирования файлов
нужно сделать батник , который при копирование например 10 гб писал проценты скачивание, чтобы видно было сколько процентов уже скачал, а...

Прогресс копирования функции CopyFileA
Когда используешь CopyFileA на файлы небольших размеров всё происходит довольно быстро, но если попробовать на видео файле размеров в...

Как в прогресс баре отобразить состояние копирования с/на USB устройство?
знаний в формах очень мало.но задача элементарна думаю. вопрос в том как заставить прогу получить доступ к юсб портам и начать заполняться...

Прогресс выполнения копирования через File::Copy или быстрое копирование
Доброго времени суток, коллеги. Я конечно не могу похвастаться большим опытом в программировании на С++, тем более что приходиться...

Прогресс закачки файла
Отправляю файл через сокеты таким образом ServerSocket1.Socket.Connections.SendStream(mm); Как показать в прогресс баре какой прогресс...


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

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Новые блоги и статьи
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
Установка программного отбора элементов справочника "Сотрудники" из модуля формы документа. В качестве фильтра для отбора служит предопределенное значение перечислений. Процедура. . .
Переходник USB-CAN-GPIO
Eddy_Em 20.03.2026
Достаточно давно на работе возникла необходимость в переходнике CAN-USB с гальваноразвязкой, оный и был разработан. Однако, все меня терзала совесть, что аж 48-ногий МК используется так тупо: просто. . .
Оттенки серого
Argus19 18.03.2026
Оттенки серого Нашёл в интернете 3 прекрасных модуля: Модуль класса открытия диалога открытия/ сохранения файла на Win32 API; Модуль класса быстрого перекодирования цветного изображения в оттенки. . .
SDL3 для Desktop (MinGW): Рисуем цветные прямоугольники с помощью рисовальщика SDL3 на Си и C++
8Observer8 17.03.2026
Содержание блога Финальные проекты на Си и на C++: finish-rectangles-sdl3-c. zip finish-rectangles-sdl3-cpp. zip
Символические и жёсткие ссылки в Linux.
algri14 15.03.2026
Существует два типа ссылок — символические и жёсткие. Ссылка в Linux — это запись в каталоге, которая может указывать либо на inode «файла-ИСТОЧНИКА», тогда это будет «жёсткая ссылка» (hard link),. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru