0 байт в загруженном zip-файле - PullRequest
0 голосов
/ 02 июля 2019

Я пытался загрузить пару zip-файлов программно с помощью команды curl, используя os.system () с модемом (плохое подключение к Интернету), и получать файлы размером 0 байт.

После каждого успешногоскачать, я всегда проверяю zip-файл с помощью команды 'zip -T', но после распаковки некоторые файлы имеют 0 байтов.Ниже мой код:

os.system("curl -sL --output 'master.zip' https://github.com/xxx/project/archive/master.zip")
verify = os.popen("zip -T master.zip").read()
if "OK" in verify:
  os.system("unzip -o master.zip")

Есть ли какой-нибудь способ убедиться, что этого не происходит?

1 Ответ

0 голосов
/ 02 июля 2019

Если я правильно понял, вы хотите не извлекать архивный файл, если он содержит несколько пустых файлов, верно?

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

$ unzip -l test.zip
Archive:  test.zip
  Length      Date    Time    Name
---------  ---------- -----   ----
        0  2019-07-02 18:02   test/
        0  2019-07-02 18:00   test/empty
       16  2019-07-02 18:01   test/something
---------                     -------
       16                     3 files

Эта команда также перечисляет все файлы с длинами, а из python - всего несколько строк кода для анализа и определения, есть ли в вашем архиве пустые файлы.Обратите внимание, что каталоги также имеют 0 размеров в соответствии с unzip, и это также видно в примере.

...