Загрузка прогресса в PythonPython

Программы на Python
Ответить
Anonymous
 Загрузка прогресса в Python

Сообщение Anonymous »

Я написал клиент-серверную программу, клиент загружает файл с сервера по частям, и я хочу показать ход загрузки на консоли клиента.
Я попробовал этот код:

Код: Выделить всё

def download_chunk(index, offset, size):
"""Download a file chunk."""
try:
if size == 0:
with progress_lock:
progress[index] = 100.00
return

with open(temp_files[index], "wb") as f:
connections[index].send(f"DOWNLOAD {filename} {offset} {size}".encode("utf8"))
remaining = size
total_received = 0
while remaining > 0:
chunk = connections[index].recv(min(BUFSIZ, remaining))
if not chunk:
raise ConnectionError(f"Connection lost for chunk {index}.")
f.write(chunk)
received_len = len(chunk)
total_received += received_len
remaining -= received_len
with progress_lock:
progress[index] = (total_received / size) * 100
if progress_lines[index] is None:
print(f"Downloading {filename} part {index + 1} .... {progress[index]:6.2f}%")
progress_lines[index] = index
else:
print(f"\033[FDownloading {filename} part {index + 1} ...   {progress[index]:6.2f}%")
except Exception as e:
print(f"Error downloading chunk {index}: {e}")
finally:
connections[index].close()
Я ожидаю, что клиентская консоль будет такой

Код: Выделить всё

Downloading File5.zip part 1 ....  100.00%
Downloading File5.zip part 2 ....  100.00%
Downloading File5.zip part 3 ....  100.00%
Downloading File5.zip part 4 ....  100.00%
Но после загрузки это так

Код: Выделить всё

Downloading Pickleball.mp3 part 1 ....  29.02%
Downloading Pickleball.mp3 part 2 ....  21.73%
Downloading Pickleball.mp3 part 2 ....  45.86%
Downloading Pickleball.mp3 part 4 .... 100.00%
Вывод
введите здесь описание изображения
В нем есть строка [FDownloading Pickleball.mp3 part 1 .... 100,00%, но после загрузки составил 29,02%
Не знаю, где я ошибся

Подробнее здесь: https://stackoverflow.com/questions/793 ... -in-python
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Python»