Найти - Пользователи
Полная версия: Как сделать резервную копию файла и упаковать в архив?
Начало » Python для новичков » Как сделать резервную копию файла и упаковать в архив?
1
Leon0x1
Здравствуйте. Осваиваю 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, чтобы файлы копировались, создавался архив с ними?
sander
Leon0x1
вы знаете что такое os.sep?
Leon0x1
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? Но в чём я ошибся? Или причина в другом?
sander
Leon0x1
оформите код в теги code
ну и
RTFM
Rodegast
А что конкретно не получается. Приведи код.
P.S. Модуль ZipFile не очень понятен для навичков. Лучше его заменить на tarfile.
Leon0x1
sander
Leon0x1оформите код в теги codeну и RTFM
Я это уже всё читал, и код свой менял по всякому, но НИЧЕГО НЕ РАБОТАЕТ. Никакой вариант.
Leon0x1
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('Создание резервной копии НЕ УДАЛОСЬ')
py.user.next
Leon0x1
А код у меня сейчас такой (почему-то здесь, на форуме не прописываются пути директории
Это на всех форумах так, по всему Интернету. Если пользователь пишет много лишних символов, они удаляются. Чтобы символы не удалялись, существуют специальные экранирующие конструкции.
sander
Leon0x1
открой ссылку на документацию, которую я скинул, там есть пример создания zip фала
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB