4 / 4 / 0
Регистрация: 01.11.2023
Сообщений: 88

Структура архива

13.01.2024, 12:45. Показов 4154. Ответов 4

Студворк — интернет-сервис помощи студентам
Дополните вывод задачи «Структура архива» информацией о размере каждого файла в человекочитаемом формате.

Размер надо выводить через пробел после имени файла.
Формат ввода
В каталоге с вашей программой обязательно будет находиться файл input.zip. Его структуру и надо показывать.
Формат вывода
1
2
3
files
123.txt 25КБ
libs
4


Код из первой задачи:
Python
1
2
3
4
5
6
7
import os
from zipfile import ZipFile
 
with ZipFile('input.zip') as filezip:
    for name in filezip.namelist():
        item = name.rstrip("/").split("/")
        print("  " * (len(item) - 1) + item[-1])
Помогите пожалуйста!!!
0
Лучшие ответы (1)
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
13.01.2024, 12:45
Ответы с готовыми решениями:

Структура архива
Выводить файловую структуру мы научились. Теперь на очереди — архивы. Напишите программу, на вход которой поступает zip-архив с именем...

Структура архива
Выводить файловую структуру мы научились. Теперь на очереди — архивы. Напишите программу, на вход которой поступает zip-архив с именем...

Взлом архива
Здравствуйте! Помогите пожалуйста дописать код для взлома архива в цикле While, у меня правильно не выходит( import string import...

4
4 / 3 / 1
Регистрация: 07.10.2023
Сообщений: 7
14.01.2024, 19:59
Лучший ответ Сообщение было отмечено DanMAm как решение

Решение

Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
from zipfile import ZipFile
 
 
def human_read_format(size):
    sizes = ['Б', 'КБ', 'МБ', 'ГБ']
    ind = 0
    for i in range(len(sizes)):
        if size / (1024 ** i) < 1:
            break
        ind = i
    return f'{round(size / (1024 ** ind))}{sizes[ind]}'
 
 
with ZipFile('input.zip') as myzip:
    for file in myzip.namelist():
        b = ''
        a = file.rstrip('/').split('/')
        if (a[-1][-1] == 't' and a[-1][-2] == 'x'
                or a[-1][-1] == 'x' and a[-1][-2] == 'c' and a[-1][-3] == 'o'
                or a[-1][-1] == 'x' and a[-1][-2] == 's' and a[-1][-3] == 'l'):
            filesize = myzip.getinfo(str(file)).file_size
            b = human_read_format(filesize)
        print('  ' * (len(a) - 1) + a[-1] + ' ' + b)
2
4 / 4 / 0
Регистрация: 01.11.2023
Сообщений: 88
17.01.2024, 08:44  [ТС]
QFAL1, Большое спасибо, Вы не могли бы еще помочь с ОДНОЙ задачкой:

Большинство пользователей компьютеров сталкиваются с тем, что приходится чистить жесткий диск от старых файлов. Для этого надо составить список самых «замусоренных» каталогов, то есть каталогов, содержащих большое количество файлов или других каталогов.

Вам предстоит написать программу, которая для некоторого пути создает и выводит на экран список TOP-10 таких каталогов, причем вывод надо организовать в порядке убывания размера.

Для каждой папки необходимо посчитать суммарный размер всего ее вложения.
Формат вывода
Вывести информацию о каталогах можно, например, так:

ubuntu-17.04-desktop-amd64.iso - 1ГБ
LinuxLite_3.6-VB-32bit.7z - 906МБ
Новая папка.zip - 713МБ
OnlinePythonTutor-master - 644МБ
Telegram Desktop - 540МБ
OnlinePythonTutor-master.zip - 256МБ
pycharm-community-2018.1.3.dmg - 246МБ
pycharm-community-2018.2.1.dmg - 239МБ
eclipse-cpp-oxygen-R-macosx-cocoa-x86_64.dmg - 198МБ
pycharm-community-2017.2.3.dmg - 184МБ
Ещё раз большое спасибо за код)
0
4 / 3 / 1
Регистрация: 07.10.2023
Сообщений: 7
17.01.2024, 18:15
Обращайся
Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
import os
 
 
def human_read_format(size):
    sizes = ['Б', 'КБ', 'МБ', 'ГБ']
    ind = 0
    for i in range(len(sizes)):
        if size / (1024 ** i) < 1:
            break
        ind = i
    return f'{round(size / (1024 ** ind))}{sizes[ind]}'
 
 
def get_size(start_path='.'):
    total_size = 0
    for dirpath, dirnames, filenames in os.walk(start_path):
        for f in filenames:
            fp = os.path.join(dirpath, f)
            # skip if it is symbolic link
            if not os.path.islink(fp):
                total_size += os.path.getsize(fp)
 
    return total_size
 
 
os.chdir('C:/')
numbfile = 0
lst = os.listdir()
for i in range(len(lst)):
    size = human_read_format(get_size(lst[numbfile]))
    if size != '0Б':
        print(f'{lst[numbfile]} \t{size}')
    numbfile += 1
1
4 / 4 / 0
Регистрация: 01.11.2023
Сообщений: 88
18.01.2024, 11:26  [ТС]
QFAL1, Большое спасибо за код, ооочень выручил)
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
18.01.2024, 11:26

Структура архива
Ограничение времени 1 секунда Ограничение памяти 64Mb Ввод input.zip Вывод стандартный вывод или output.txt Выводить файловую...

Создание архива
Задача: Системный администратор вспомнил, что давно не делал архива пользовательских файлов. Однако, объем диска, куда он может...

Отправка Архива
Всем здравствуйте! Подскажите, пожалуйста: Отправляю Архив пользователю через телеграм-бот. Архив нормальный, с целыми файлами....

Открытие zip архива
Добрый день, подскажите пожалуйста, что делает этот кусок кода? Что здесь происходит? Я просто вообще C# учу, но нужный мне принцип...

Создание архива с данными
Добрый день. Начал учить язык по книге &quot; Byte of Python &quot;. Столкнулся с заданием на создание резервных копий файлов. Но не могу понять...


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

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Опции темы

Новые блоги и статьи
Многофункциональное здание: как одно здание порождает конфликты требований, которые никто не планировал (мат мет мод 29)
anaschu 23.06.2026
Многофункциональное здание: как одно здание порождает конфликты требований, которые никто не планировал Материалы для обсуждения с МГСУ · 2026 Рисунки внутри приложенного ворд файла. Что за. . .
28. Конкретное развертывание плана номер 1 из поста номер 27
anaschu 22.06.2026
Можно ли из модели получить конкретные строительные требования? Честно — напрямую из текущей модели такие ответы не получить. Но цепочка логики есть, и она не такая длинная. Где разрыв . . .
27. Планы на разработку функциональных требований к строительству внутри модели пищеблока (или не только его?)
anaschu 22.06.2026
Что уже реализовано и даёт конфликты «бесплатно» Самый простой конфликт уже работает — конфликт за ресурс-работника. Заданий больше, чем доступных поваров → очередь в queue1. Это прямое отражение. . .
26. мед мат модель.Какие типы конфликтов функциональных требований можно рассчитать через ДЕС-моделирование (СМО) в AnyLogic?
anaschu 22.06.2026
Что ДЕС/ СМО умеет считать напрямую: Конфликты за ресурсы (очереди, узкие места). Несколько типов агентов (повара, учителя, рабочие, пациенты) претендуют на один ресурс (лифт, вход, коридор,. . .
25 модель здравосохранения и функциональных требований к пищеблоку: конфликты функциональных требований.
anaschu 22.06.2026
Есть ли данные о том, какие функциональные/ эксплуатационные требования или их сочетания труднее всего учитывать при проектировании зданий? Да, такие данные есть, и они хорошо описаны и в российской,. . .
Remote Connection Manager
DevAlt 21.06.2026
Написал для себя небольшую прилагу: https:/ / github. com/ altbodhi/ ReConMan По итогу пришел к мысли, что DU не дружат с существующими технологиями. От сериализации до отображения в реляционную. . .
Администрация Хабра удаляет новые энрегоэфективные алгоритмы, которые не западной школы кода, и вовсе никак не сгенерировавны.
Hrethgir 20.06.2026
Делается это, как замечено, при правках - при объявлении концептуальных отличий в алгоримах. Делается это, по линейке событий - после дополнения публикации основными отличиями от основных западных. . .
Процесс ориентированная диалектика (не новость - просто системное обновление, философия).
Hrethgir 20.06.2026
Однажды один участник в своём блоге, на этом форуме, сделал запись "О языках замолвите слово". Понимая, что язык - важная вещь, я решил хорошо подумать, прежде чем сказать, и сказал то, что вы видите. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru