Как найти количество файлов в архиве

Информатика ОГЭ №12

Данное задание №12 из ОГЭ по информатике решается достаточно просто и не занимает большого количества времени. Для его решения потребуются базовые знания об архиваторе WinRar и поиске файлов. WinRar — программа, которая помогает помещать файлы в архив (для экономии места), а также открывать файлы, помещённые в архив.

Для большей наглядности попробуем сразу на примере разобраться с тем, как это работает.

Пример

Сколько файлов с расширениями .docx и .doc содержится в подкаталогах каталога Task12? В ответе укажите только число.

Выполните задание, распаковав архив на своём компьютере.

Решение

Каталог с архивом
Каталог с архивом

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

Открытие архива через WinRar
Открытие архива через WinRar

После открытия можем заглянуть вовнутрь и посмотреть, сколько там находится каталогов и подкаталогов.

Интерфейс программы WinRar
Интерфейс программы WinRar

Как можем увидеть по объёму папок, то в каждой из них достаточное количество текстовых файлов. Считать количество определённых файлов можно и вручную, но уйдёт больше времени и шанс ошибиться будет высок.

Подкаталоги
Подкаталоги

Поэтому вернёмся в “корень” архива (на один уровень выше). И сразу же воспользуемся поиском. Для этого нажмём сверху на панели инструментов кнопку “Поиск”.

Функция поиска
Функция поиска

Здесь нас будет интересовать только один параметр поиска — “Искомые имена файлов”. Тут следует немного разобраться. Символ * (звёздочка) означает любое количество символов. Допустим, если нам нужно было найти все файлы с расширением pdf, то мы могли бы записать в наш параметр “.pdf”.

А поскольку вместо звёздочки (*) поисковая система подставляла бы все возможные имена и тем самым нашла бы все файлы. В нашей же ситуации нужно найти и количество файлов с расширением doc и с расширением docx. Для этого нам понадобится следующий поисковый запрос — * .doc*. Поскольку за счёт символа звёздочка мы найдём сразу два типа текстовых документов.

Если нужно было бы искать в конкретном подкаталоге, то нужно было бы перейти в него и там уже применить функцию поиска или же в области поиска указать необходимый подкаталог (путь).

Поисковый запрос
Поисковый запрос

Нажимаем на кнопку “ОК” и видим все наши файлы, соответствующие параметру. Здесь нашлись как и файлы с расширением doc, так и файлы с расширением docx. Также снизу слева можем заметить количество таких файлов (если вдруг их не будет удобно считать).

Найденные файлы при поисковом запросе
Найденные файлы при поисковом запросе

Нашли пять файлов с данными двумя расширениями, следовательно получили ответ – 5.

Понравилась статья? Хочешь разбираться в информатике, программировании и уметь работать в разных программах? Тогда ставь лайк, подпишись на канал и поделись статьей с друзьями!

Читайте также:

#информатика #огэ #разбор #задания #решение #экзамен

1: rar lb имя_архива
выведет только список файлов (по крайней мере в новых версиях точно)
rar lb имя_архива >out.txt
выведет список файлов в out.txt

2: xcopy …>nul
как у любого консольного приложения если вывод идёт в стандартное устройство вывода – его можно перенаправить. nul – в “никуда” =)

3: Подсчитать число строк в файле (в данном случае число файлов) и вывести их на экран
@echo off
setlocal enabledelayedexpansion
rem Куда будем скидывать список файлов %TEMP% = папка для временных файлов
set outFile = %TEMP%out.txt

rem Выводим список файлов в архиве в файл
rar lb имя_архива > %outFile%

set count=0
rem Цикл по строкам файла
for /F %%i in (%outFile%) do (
echo File : %%i
set /a count=!count!+1
)
echo Total:%count%

rem Удаляем за собой список файлов
del %outFile% >nul

Максим МурыгинПрофи (702)

10 лет назад

Отправка в никуда у xcopy ничего не копирует(
Из рара имена файлов получаю.
А вот с подсчетом так не получится. Используется один лог в который записываются имена скопированных файлов. Потом все архивируется используя лог как список при этом исключая файлы вес которых больше 2х метров.
После этого список за архивированных файлов дописывается в тот же лог.

0 / 0 / 0

Регистрация: 27.01.2012

Сообщений: 79

1

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

10.05.2018, 10:34. Показов 7665. Ответов 2


Студворк — интернет-сервис помощи студентам

Привет.
Есть большой архив с кучей вложенных папок
В архиве 122 640 файлов.
После распаковки получается 122 625 файлов.
Надо найти файлы, которые не распаковываются.
Как в архиве посмотреть количество файлов во вложенных папках? И желательно их объем.
В winrar не нашел такой возможности.
Подскажите как это сделать в winrar?
Или может можно с помощью другой программы?



0



1044 / 528 / 66

Регистрация: 16.01.2013

Сообщений: 4,093

15.05.2018, 11:30

2

qazibum, файлы бывают скрытые созданные windows для себя. отобразите скрытые файлы.



0



из племени тумба-юбма

2409 / 1739 / 404

Регистрация: 29.11.2015

Сообщений: 8,405

Записей в блоге: 14

15.05.2018, 21:27

3

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

Кликните здесь для просмотра всего текста

Код

#  Архив C:UsersAspireM3400DocumentsDocuments.rar
2018-03-18 01:54             0             0  My GamesCrysisShadersCacheShaderList.txt
2017-07-28 21:56          2645          1202  My GamesFar Cry 3GamerProfile.xml
2016-05-21 12:42         28362          1195  My GamesFar Cry 3TutorialProfile.xml
2018-05-15 01:34          3884          1566  My GamesFar Cry 4RLD!GamerProfile.xml
2018-05-15 01:34          8216           917  My GamesFar Cry 4RLD!GFXSettings.FarCry464.xml
2018-05-12 21:48            10            10  My GamesFar Cry 4RLD!HIDInputRemapper.xml
2018-04-16 15:05       2386644       1819224  My GamesFar Cry 5benchmarksbenchmark 2018-04-16_15-05-26result.html
2018-04-16 15:09       2386644       1819215  My GamesFar Cry 5benchmarksbenchmark 2018-04-16_15-09-29result.html
2018-04-22 16:12       2386644       1819223  My GamesFar Cry 5benchmarksbenchmark 2018-04-22_16-12-09result.html
2018-05-11 23:28             0             0  My GamesFar Cry 5check.txt
2018-05-11 23:35          5678          2127  My GamesFar Cry 5gamerprofile.xml
2018-04-15 19:31           141           119  My GamesXCOM - Enemy UnknownXComGameConfigXComCamera.ini
2018-04-15 19:31         20981          3457  My GamesXCOM - Enemy UnknownXComGameConfigXComCompat.ini
2018-04-15 19:32         49724          4824  My GamesXCOM - Enemy UnknownXComGameConfigXComContent.ini
2018-04-15 19:31           162           114  My GamesXCOM - Enemy UnknownXComGameConfigXComDLC.ini
2018-04-15 19:32         89127         17359  My GamesXCOM - Enemy UnknownXComGameConfigXComEngine.ini
2018-04-15 19:31          5209          1891  My GamesXCOM - Enemy UnknownXComGameConfigXComGame.ini
2018-04-15 19:31         16104          2147  My GamesXCOM - Enemy UnknownXComGameConfigXComGameData.ini
2018-04-15 19:31         53888          6764  My GamesXCOM - Enemy UnknownXComGameConfigXComInput.ini
2018-04-15 19:31          6923          2012  My GamesXCOM - Enemy UnknownXComGameConfigXComLightmass.ini
2018-04-15 19:32         34606          3139  My GamesXCOM - Enemy UnknownXComGameConfigXComMaps.ini
2018-04-15 19:31          9466          2140  My GamesXCOM - Enemy UnknownXComGameConfigXComMetaData.ini
2018-04-15 19:31         49469          8965  My GamesXCOM - Enemy UnknownXComGameConfigXComNameList.ini
2018-04-15 19:32         42332          4680  My GamesXCOM - Enemy UnknownXComGameConfigXComNarrative.ini
2018-04-15 19:31          1892           633  My GamesXCOM - Enemy UnknownXComGameConfigXComUI.ini
2018-04-15 19:32        395564         50628  My GamesXCOM - Enemy UnknownXComGameLocalizationINTXComGame.INT
2018-04-15 19:32        327760         86310  My GamesXCOM - Enemy UnknownXComGameLocalizationINTXComStrategyGame.INT
2018-04-15 19:32         16345          4594  My GamesXCOM - Enemy UnknownXComGameLocalizationINTXComUIShell.INT
2018-04-15 19:32        576942         91321  My GamesXCOM - Enemy UnknownXComGameLocalizationRUSXComStrategyGame.RUS
2018-04-15 19:32         33354          6126  My GamesXCOM - Enemy UnknownXComGameLocalizationRUSXComUIShell.RUS
2018-04-15 19:31           144            96  My GamesXCOM - Enemy UnknownXComGameLogsEMSXComDLC.ini
2018-04-15 19:31            16            13  My GamesXCOM - Enemy UnknownXComGameLogsEMSXComGame.RUS
2018-04-15 19:31         55040          2944  My GamesXCOM - Enemy UnknownXComGameLogsEMSXComGameCore.ini
2018-04-15 19:32         44015          7486  My GamesXCOM - Enemy UnknownXComGameLogsLaunch.log
2018-04-15 19:32          1010           982  My GamesXCOM - Enemy UnknownXComGameSaveDataprofile.bin
2018-04-15 20:12           141           119  My GamesXCOM - Enemy WithinXComGameConfigXComCamera.ini
2018-04-15 20:12         20981          3467  My GamesXCOM - Enemy WithinXComGameConfigXComCompat.ini
2018-04-15 20:12         73581          7908  My GamesXCOM - Enemy WithinXComGameConfigXComContent.ini
2018-04-15 22:19         81938         16657  My GamesXCOM - Enemy WithinXComGameConfigXComEngine.ini
2018-04-15 20:12         10577          2986  My GamesXCOM - Enemy WithinXComGameConfigXComGame.ini
2018-04-15 20:12         35145          4647  My GamesXCOM - Enemy WithinXComGameConfigXComGameData.ini
2018-04-15 20:12         80038          8246  My GamesXCOM - Enemy WithinXComGameConfigXComInput.ini
2018-04-15 20:12          6923          2012  My GamesXCOM - Enemy WithinXComGameConfigXComLightmass.ini
2018-04-15 20:12         82707          5003  My GamesXCOM - Enemy WithinXComGameConfigXComMaps.ini
2018-04-15 20:12         10460          2373  My GamesXCOM - Enemy WithinXComGameConfigXComMetaData.ini
2018-04-15 20:12         51109          9249  My GamesXCOM - Enemy WithinXComGameConfigXComNameList.ini
2018-04-15 20:12         62652          6926  My GamesXCOM - Enemy WithinXComGameConfigXComNarrative.ini
2018-04-15 20:12          1892           633  My GamesXCOM - Enemy WithinXComGameConfigXComUI.ini
2018-04-16 13:00            35            35  My GamesXCOM - Enemy WithinXComGameLogsEMSXComGameCore.ini
2018-04-15 20:32       1393261         53666  My GamesXCOM - Enemy WithinXComGameLogsLaunch-backup-2018.04.15-22.17.48.log
2018-04-16 00:43       7382723        253236  My GamesXCOM - Enemy WithinXComGameLogsLaunch-backup-2018.04.16-00.43.52.log
2018-04-16 01:05        959343         44626  My GamesXCOM - Enemy WithinXComGameLogsLaunch-backup-2018.04.16-01.20.04.log
2018-04-16 01:28        541586         24975  My GamesXCOM - Enemy WithinXComGameLogsLaunch-backup-2018.04.16-03.00.40.log
2018-04-16 04:31       3491609        129262  My GamesXCOM - Enemy WithinXComGameLogsLaunch-backup-2018.04.16-11.29.19.log
2018-04-16 11:38        556795         26323  My GamesXCOM - Enemy WithinXComGameLogsLaunch-backup-2018.04.16-13.00.12.log
2018-04-16 13:10       1194058         39297  My GamesXCOM - Enemy WithinXComGameLogsLaunch.log
2018-04-16 13:10          2433          2264  My GamesXCOM - Enemy WithinXComGameSaveDataprofile.bin
2018-04-16 04:17        912281        442643  My GamesXCOM - Enemy WithinXComGameSaveDatasave1
2018-04-16 11:38        213831         94026  My GamesXCOM - Enemy WithinXComGameSaveDatasave2
2018-04-16 13:10        950812        370070  My GamesXCOM - Enemy WithinXComGameSaveDatasave3
2018-05-12 01:36        336936        336936  CPY_SAVESCPYUPLAY18031.save
2018-05-12 01:36        336936        336936  CPY_SAVESCPYUPLAY18032.save
2018-03-25 08:10        420288          3983  EA GamesDead Space 2ds_slot_01.deadspace2saved
2018-03-25 09:08        420288         22084  EA GamesDead Space 2ds_slot_02.deadspace2saved
2018-03-26 22:15        420288         46061  EA GamesDead Space 2ds_slot_03.deadspace2saved
2018-03-26 23:40        420288         22738  EA GamesDead Space 2ds_slot_04.deadspace2saved
2018-03-27 01:19        420288         52423  EA GamesDead Space 2ds_slot_05.deadspace2saved
2018-03-27 14:38        420288         57009  EA GamesDead Space 2ds_slot_06.deadspace2saved
2018-03-20 21:22        420288         21123  EA GamesDead Space 2ds_slot_07.deadspace2saved
2018-03-21 22:45        420288         33693  EA GamesDead Space 2ds_slot_08.deadspace2saved
2018-03-21 23:47        420288         44113  EA GamesDead Space 2ds_slot_09.deadspace2saved
2018-03-22 03:21        420288         34741  EA GamesDead Space 2ds_slot_10.deadspace2saved
2018-03-22 19:39        420288         57378  EA GamesDead Space 2ds_slot_11.deadspace2saved
2018-03-22 19:46        420288         28878  EA GamesDead Space 2ds_slot_12.deadspace2saved
2018-03-23 00:30        420288         52058  EA GamesDead Space 2ds_slot_13.deadspace2saved
2018-03-23 00:52        420288         34886  EA GamesDead Space 2ds_slot_14.deadspace2saved
2018-03-25 06:50        420288         52233  EA GamesDead Space 2ds_slot_15.deadspace2saved
2018-03-25 06:40        420288         47672  EA GamesDead Space 2ds_slot_16.deadspace2saved
2018-03-25 07:38        420288         62664  EA GamesDead Space 2ds_slot_17.deadspace2saved
2018-04-15 19:32         Папка         Папка  My GamesXCOM - Enemy UnknownXComGameLocalizationINT
2018-04-15 19:32         Папка         Папка  My GamesXCOM - Enemy UnknownXComGameLocalizationRUS
2018-04-15 19:31         Папка         Папка  My GamesXCOM - Enemy UnknownXComGameLogsEMS
2018-04-15 22:17         Папка         Папка  My GamesXCOM - Enemy WithinXComGameLogsEMS
2018-03-18 01:54         Папка         Папка  My GamesCrysisShadersCache
2018-04-16 15:05         Папка         Папка  My GamesFar Cry 5benchmarksbenchmark 2018-04-16_15-05-26
2018-04-16 15:09         Папка         Папка  My GamesFar Cry 5benchmarksbenchmark 2018-04-16_15-09-29
2018-04-22 16:12         Папка         Папка  My GamesFar Cry 5benchmarksbenchmark 2018-04-22_16-12-09
2018-04-15 19:31         Папка         Папка  My GamesXCOM - Enemy UnknownBinariesWin32
2018-04-15 19:31         Папка         Папка  My GamesXCOM - Enemy UnknownXComGameConfig
2018-04-15 19:32         Папка         Папка  My GamesXCOM - Enemy UnknownXComGameLocalization
2018-04-15 19:31         Папка         Папка  My GamesXCOM - Enemy UnknownXComGameLogs
2018-04-15 19:31         Папка         Папка  My GamesXCOM - Enemy UnknownXComGameSaveData
2018-04-15 20:12         Папка         Папка  My GamesXCOM - Enemy WithinBinariesWin32
2018-04-15 20:12         Папка         Папка  My GamesXCOM - Enemy WithinXComGameConfig
2018-04-16 13:00         Папка         Папка  My GamesXCOM - Enemy WithinXComGameLogs
2018-04-15 22:27         Папка         Папка  My GamesXCOM - Enemy WithinXComGameSaveData
2018-04-16 15:10         Папка         Папка  CPY_SAVESCPYUPLAY1803
2018-03-18 01:54         Папка         Папка  My GamesCrysisShaders
2018-05-12 21:48         Папка         Папка  My GamesFar Cry 4RLD!
2018-04-22 16:12         Папка         Папка  My GamesFar Cry 5benchmarks
2018-04-15 19:31         Папка         Папка  My GamesXCOM - Enemy UnknownBinaries
2018-04-15 19:32         Папка         Папка  My GamesXCOM - Enemy UnknownXComGame
2018-04-15 20:12         Папка         Папка  My GamesXCOM - Enemy WithinBinaries
2018-04-15 20:12         Папка         Папка  My GamesXCOM - Enemy WithinXComGame
2018-04-16 15:00         Папка         Папка  CPY_SAVESCPYUPLAY
2018-03-18 01:54         Папка         Папка  My GamesCrysis
2018-03-18 01:57         Папка         Папка  My GamesFar Cry 3
2018-05-12 21:35         Папка         Папка  My GamesFar Cry 4
2018-05-08 21:16         Папка         Папка  My GamesFar Cry 5
2018-04-15 19:31         Папка         Папка  My GamesXCOM - Enemy Unknown
2018-04-15 20:12         Папка         Папка  My GamesXCOM - Enemy Within
2018-04-16 15:00         Папка         Папка  CPY_SAVESCPY
2018-03-25 07:26         Папка         Папка  EA GamesDead Space 2
2018-03-23 15:34         Папка         Папка  Electronic ArtsDead Space
2018-04-29 18:27         Папка         Папка  MAGIX DownloadsInstallationsmanager
2018-05-12 21:35         Папка         Папка  My Games
2018-04-16 15:00         Папка         Папка  CPY_SAVES
2018-03-17 00:39         Папка         Папка  EA Games
2018-03-23 15:34         Папка         Папка  Electronic Arts
2018-04-29 18:27         Папка         Папка  MAGIX Downloads
2018-03-26 17:45         Папка         Папка  My Cheat Tables
#
# Всего:                Размер          Сжат  Файлы
#                     34974620       8671681  121



0



02.06.2022

Данное задание №12 из ОГЭ по информатике решается достаточно просто и не занимает большого количества времени. Для его решения потребуются базовые знания об архиваторе WinRar и поиске файлов. WinRar – программа, которая помогает помещать файлы в архив (для экономии места), а также открывать файлы, помещённые в архив.

Для большей наглядности попробуем сразу на примере разобраться с тем, как это работает.

Пример

Сколько файлов с расширениями .docx и .doc содержится в подкаталогах каталога Task12? В ответе укажите только число.

Выполните задание, распаковав архив на своём компьютере.

Решение

Каталог с архивом

Каталог с архивом

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

Открытие архива через WinRar

Открытие архива через WinRar

После открытия можем заглянуть вовнутрь и посмотреть, сколько там находится каталогов и подкаталогов.

Интерфейс программы WinRar

Интерфейс программы WinRar

Как можем увидеть по объёму папок, то в каждой из них достаточное количество текстовых файлов. Считать количество определённых файлов можно и вручную, но уйдёт больше времени и шанс ошибиться будет высок.

Подкаталоги

Подкаталоги

Поэтому вернёмся в “корень” архива (на один уровень выше). И сразу же воспользуемся поиском. Для этого нажмём сверху на панели инструментов кнопку “Поиск”.

Функция поиска

Функция поиска

Здесь нас будет интересовать только один параметр поиска – “Искомые имена файлов”. Тут следует немного разобраться. Символ * (звёздочка) означает любое количество символов. Допустим, если нам нужно было найти все файлы с расширением pdf, то мы могли бы записать в наш параметр “.pdf”. А поскольку вместо звёздочки (*) поисковая система подставляла бы все возможные имена и тем самым нашла бы все файлы. В нашей же ситуации нужно найти и количество файлов с расширением doc и с расширением docx. Для этого нам понадобится следующий поисковый запрос – * .doc*. Поскольку за счёт символа звёздочка мы найдём сразу два типа текстовых документов. Если нужно было бы искать в конкретном подкаталоге, то нужно было бы перейти в него и там уже применить функцию поиска или же в области поиска указать необходимый подкаталог (путь).

Поисковый запрос

Поисковый запрос

Нажимаем на кнопку “ОК” и видим все наши файлы, соответствующие параметру. Здесь нашлись как и файлы с расширением doc, так и файлы с расширением docx. Также снизу слева можем заметить количество таких файлов (если вдруг их не будет удобно считать).

Найденные файлы при поисковом запросе

Найденные файлы при поисковом запросе

Нашли пять файлов с данными двумя расширениями, следовательно получили ответ – 5.

Вам может понравиться

To count the number of archive members in a zip archive in Python:

#!/usr/bin/env python
import sys
from contextlib import closing
from zipfile import ZipFile

with closing(ZipFile(sys.argv[1])) as archive:
    count = len(archive.infolist())
print(count)

It may use zlib, bz2, lzma modules if available, to decompress the archive.


To count the number of regular files in a tar archive:

#!/usr/bin/env python
import sys
import tarfile

with tarfile.open(sys.argv[1]) as archive:
    count = sum(1 for member in archive if member.isreg())
print(count)

It may support gzip, bz2 and lzma compression depending on version of Python.

You could find a 3rd-party module that would provide a similar functionality for 7z archives.


To get the number of files in an archive using 7z utility:

import os
import subprocess

def count_files_7z(archive):
    s = subprocess.check_output(["7z", "l", archive], env=dict(os.environ, LC_ALL="C"))
    return int(re.search(br'(d+)s+files,s+d+s+folders$', s).group(1))

Here’s version that may use less memory if there are many files in the archive:

import os
import re
from subprocess import Popen, PIPE, CalledProcessError

def count_files_7z(archive):
    command = ["7z", "l", archive]
    p = Popen(command, stdout=PIPE, bufsize=1, env=dict(os.environ, LC_ALL="C"))
    with p.stdout:
        for line in p.stdout:
            if line.startswith(b'Error:'): # found error
                error = line + b"".join(p.stdout)
                raise CalledProcessError(p.wait(), command, error)
    returncode = p.wait()
    assert returncode == 0
    return int(re.search(br'(d+)s+files,s+d+s+folders', line).group(1))

Example:

import sys

try:
    print(count_files_7z(sys.argv[1]))
except CalledProcessError as e:
    getattr(sys.stderr, 'buffer', sys.stderr).write(e.output)
    sys.exit(e.returncode)

To count the number of lines in the output of a generic subprocess:

from functools import partial
from subprocess import Popen, PIPE, CalledProcessError

p = Popen(command, stdout=PIPE, bufsize=-1)
with p.stdout:
    read_chunk = partial(p.stdout.read, 1 << 15)
    count = sum(chunk.count(b'n') for chunk in iter(read_chunk, b''))
if p.wait() != 0:
    raise CalledProcessError(p.returncode, command)
print(count)

It supports unlimited output.


Could you explain why buffsize=-1 (as opposed to buffsize=1 in your previous answer: stackoverflow.com/a/30984882/281545)

bufsize=-1 means use the default I/O buffer size instead of bufsize=0 (unbuffered) on Python 2. It is a performance boost on Python 2. It is default on the recent Python 3 versions. You might get a short read (lose data) if on some earlier Python 3 versions where bufsize is not changed to bufsize=-1.

This answer reads in chunks and therefore the stream is fully buffered for efficiency. The solution you’ve linked is line-oriented. bufsize=1 means “line buffered”. There is minimal difference from bufsize=-1 otherwise.

and also what the read_chunk = partial(p.stdout.read, 1 << 15) buys us ?

It is equivalent to read_chunk = lambda: p.stdout.read(1<<15) but provides more introspection in general. It is used to implement wc -l in Python efficiently.

Добавить комментарий