Уведомления

Группа в Telegram: @pythonsu

#1 Март 24, 2016 11:19:57

Leon0x1
Зарегистрирован: 2016-03-01
Сообщения: 14
Репутация: +  0  -
Профиль   Отправить e-mail  

Как сделать резервную копию файла и упаковать в архив?

Здравствуйте. Осваиваю Python, времени на обучение к сожалению мало и поэтому двигаюсь очень медленно. В учебнике по которому я занимаюсь есть задача сделать резервную копию файлов и упаковать их в zip. В данной задаче автор учебника рекомендует скачать специальное приложение gnuwin32, установить его на компьютер и прописать путь к нему в переменных среды.
С этим приложением всё работает, но далее автор предлагает изменить задачу и выполнить её без использования os.sep, вместо которого нужно использовать модуль ZipFile. Но никаких объяснений как применять этот модуль в учебнике нет.
Вот какой у меня был код когда я использовал os.sep:

import os
source =
target_dir = ‘J:\\buckap’
target = target_dir + os.sep + ‘копия_документов.zip’
zip_command = “zip -qr {0} {1}”.format(target, ‘ ’.join(source))
if os.system(zip_command) == 0:
print('Резервная копия Создана успешно')
else:
print('Создание резервной копии НЕ УДАЛОСЬ')


Но как сделать то же самое при помощи модуля ZipFile? Я искал решение в интернете несколько суток, скачивал разные справочники и в результате так ничего и не нашёл.
Я импортирую сам модуль:
import zipfile
далее пытаюсь убрать os.sep, как-то поменять код, но постоянно выдаёт ошибки. Я не могу понять как использовать модуль ZipFile чтобы всё работало как в примере выше с os.sep, чтобы файлы копировались, создавался архив с ними?

Офлайн

#2 Март 24, 2016 12:57:56

sander
Зарегистрирован: 2015-02-19
Сообщения: 317
Репутация: +  53  -
Профиль   Отправить e-mail  

Как сделать резервную копию файла и упаковать в архив?

Leon0x1
вы знаете что такое os.sep?

Офлайн

#3 Март 24, 2016 16:38:59

Leon0x1
Зарегистрирован: 2016-03-01
Сообщения: 14
Репутация: +  0  -
Профиль   Отправить e-mail  

Как сделать резервную копию файла и упаковать в архив?

sander
Leon0x1вы знаете что такое os.sep?
Да, несколько не то написал, я имел в виду os.system.
A переменная os.sep, если не ошибаюсь обеспечивает переносимость на разные ОС.
Но как мне всё-таки решить данную задачу, я не знаю. Сейчас мой код выглядит так:
import zipfile
import os
source =
target_dir = ‘J:\\buckap’
target = target_dir + os.sep + zipfile('копия_документов.zip')
zip_command = “zip -qr {0} {1}”.format(target, ‘'.join(source))
if zipfile(zip_command) == 0:
print(’Резервная копия Создана успешно')
else:
print('Создание резервной копии НЕ УДАЛОСЬ')

Но он не работает. Ошибка выходит такая: typeerror: module ‘object’ is not callable
То есть, я не правильно импортировал модуль zipfile? Но в чём я ошибся? Или причина в другом?

Отредактировано Leon0x1 (Март 24, 2016 16:39:54)

Офлайн

#4 Март 24, 2016 16:47:57

sander
Зарегистрирован: 2015-02-19
Сообщения: 317
Репутация: +  53  -
Профиль   Отправить e-mail  

Как сделать резервную копию файла и упаковать в архив?

Leon0x1
оформите код в теги code
ну и
RTFM

Офлайн

#5 Март 24, 2016 19:04:33

Rodegast
От: Пятигорск
Зарегистрирован: 2007-12-28
Сообщения: 2843
Репутация: +  186  -
Профиль   Отправить e-mail  

Как сделать резервную копию файла и упаковать в архив?

А что конкретно не получается. Приведи код.
P.S. Модуль ZipFile не очень понятен для навичков. Лучше его заменить на tarfile.



С дураками и сектантами не спорю, истину не ищу.
Ели кому-то правда не нравится, то заранее извиняюсь.

Офлайн

#6 Март 25, 2016 04:45:15

Leon0x1
Зарегистрирован: 2016-03-01
Сообщения: 14
Репутация: +  0  -
Профиль   Отправить e-mail  

Как сделать резервную копию файла и упаковать в архив?

sander
Leon0x1оформите код в теги codeну и RTFM
Я это уже всё читал, и код свой менял по всякому, но НИЧЕГО НЕ РАБОТАЕТ. Никакой вариант.

Отредактировано Leon0x1 (Март 25, 2016 04:52:50)

Офлайн

#7 Март 25, 2016 04:48:56

Leon0x1
Зарегистрирован: 2016-03-01
Сообщения: 14
Репутация: +  0  -
Профиль   Отправить e-mail  

Как сделать резервную копию файла и упаковать в архив?

Rodegast
А что конкретно не получается. Приведи код.P.S. Модуль ZipFile не очень понятен для навичков. Лучше его заменить на tarfile.
Выдаёт ошибку TypeError: ‘modyle’ object is not callable
А код у меня сейчас такой (почему-то здесь, на форуме не прописываются пути директории где лежат копируемые объекты после source= ):

import zipfile
import os
source =
target_dir = ‘J:\\buckap’
target = target_dir + os.sep + zipfile('копия_документов.zip', ‘w’)
zip_command = “zip -qr {0} {1}”.format(target, ‘ ’.join(source))
if zipfile(zip_command) == 0:
print('Резервная копия успешно создана в', target)
else:
print('Создание резервной копии НЕ УДАЛОСЬ')

Отредактировано Leon0x1 (Март 25, 2016 05:04:13)

Офлайн

#8 Март 25, 2016 05:28:32

py.user.next
От:
Зарегистрирован: 2010-04-29
Сообщения: 10016
Репутация: +  857  -
Профиль   Отправить e-mail  

Как сделать резервную копию файла и упаковать в архив?

Leon0x1
А код у меня сейчас такой (почему-то здесь, на форуме не прописываются пути директории
Это на всех форумах так, по всему Интернету. Если пользователь пишет много лишних символов, они удаляются. Чтобы символы не удалялись, существуют специальные экранирующие конструкции.



Отредактировано py.user.next (Март 25, 2016 05:29:06)

Офлайн

#9 Март 25, 2016 09:26:31

sander
Зарегистрирован: 2015-02-19
Сообщения: 317
Репутация: +  53  -
Профиль   Отправить e-mail  

Как сделать резервную копию файла и упаковать в архив?

Leon0x1
открой ссылку на документацию, которую я скинул, там есть пример создания zip фала

Офлайн

Board footer

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

Powered by DjangoBB

Lo-Fi Version