Уведомления

Группа в Telegram: @pythonsu

#1 Май 30, 2019 23:41:09

nitron
Зарегистрирован: 2019-05-30
Сообщения: 3
Репутация: +  0  -
Профиль   Отправить e-mail  

Не могу разобраться с zipfile.

Программа для архивации\разархивации файлов. Код отвечающий за архивацию выглядит так.

 import zipfile
import os
files = '/home/nitron/Projects/Zip/files/'
    new_zip = zipfile.ZipFile('archive.zip', 'w')
    for file in os.listdir(files):
        new_zip.write(os.path.join(files,file))
    new_zip.close()
В папке ‘files’ один файл ‘1.txt’.
Получаемый архив содержит всю структуру. То есть папки home (Содержит только папку nitron), nitron (Содержит только папку Projects), Projects, Zip, Files, 1.txt. Не могу понять, как архивировать только файл ‘1.txt’.
Прикрепляю файл (Немного изменен путь)

Прикреплённый файлы:
attachment archive (7).zip (386 байт)

Офлайн

#2 Май 31, 2019 10:28:50

Rafik
Зарегистрирован: 2018-09-04
Сообщения: 231
Репутация: +  27  -
Профиль   Отправить e-mail  

Не могу разобраться с zipfile.

Если я правильно понял, то файл должен быть упакован без путей? Если да, то необходимо перейти в каталог, где лежит файл и указать имя файла без пути. Пара os.getcwd() и os.chdir в помощь. После выполнения упаковки надо будет вернуться в текущий каталог.

Офлайн

#3 Май 31, 2019 12:24:11

JOHN_16
От: Россия, Петропавловск-Камчатск
Зарегистрирован: 2010-03-22
Сообщения: 3292
Репутация: +  221  -
Профиль   Отправить e-mail  

Не могу разобраться с zipfile.

Документация, обратите внимание на параметр arcname



_________________________________________________________________________________
полезный блог о python john16blog.blogspot.com

Офлайн

#4 Май 31, 2019 23:37:48

nitron
Зарегистрирован: 2019-05-30
Сообщения: 3
Репутация: +  0  -
Профиль   Отправить e-mail  

Не могу разобраться с zipfile.

JOHN_16
Документация, обратите внимание на параметр arcname
Дело было в arcname. Странно, что в русскоязычных статьях ни слова не было про этот аргумент.

Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version