uFellowShip
@uFellowShip
⬇⬇⬇ИМХО⬇⬇⬇

Почему не работает этот python код?

Изучаю Python по книге "A Byte Of Python". Там есть вот такой пример кода для бекапа данных:
import os
import time

# 1. Файлы и каталоги, которые необходимо скопировать, собираются в список.
source = ['"C:\\res"']
# Заметьте, что для имён, содержащих пробелы, необходимо использовать
# двойные кавычки внутри строки.
# 2. Резервные копии должны храниться в основном каталоге резерва.
target_dir = 'D:\\Backup' # Подставьте тот путь, который вы будете использовать.
# 3. Файлы помещаются в zip-архив.
# 4. Именем для zip-архива служит текущая дата и время.
target = target_dir + os.sep + time.strftime('%Y%m%d%H%M%S') + '.zip'
# 5. Используем команду "zip" для помещения файлов в zip-архив
zip_command = "zip -qr {0} {1}".format(target, ' '.join(source))
# Запускаем создание резервной копии
if os.system(zip_command) == 0:
    print('Резервная копия успешно создана в', target)
else:
    print('Создание резервной копии НЕ УДАЛОСЬ')

Все перепроверил и сделал как надо но почему не работает? Дело в операционной системе или в коде?
  • Вопрос задан
  • 183 просмотра
Решения вопроса 2
kshnkvn
@kshnkvn Куратор тега Python
t.me/kshnkvn
Потому что в Windows нет консольной утилиты zip.
Вы можете установить 7-zip, добавить его в переменную окружения и тогда изменить zip_command примерно так:
zip_command = "7z a -tzip {0} {1}".format(target, ''.joint(source))
Ответ написан
uFellowShip
@uFellowShip Автор вопроса
⬇⬇⬇ИМХО⬇⬇⬇
Кстати потом заметил 5 пункт...
5. Будем использовать стандартную команду zip, имеющуюся по умолчанию в любом
стандартном дистрибутиве GNU/Linux. Пользователи Windows могут установить её
со страницы проекта GnuWin32 и добавить “C:\Program Files\GnuWin32\bin” к системной переменной окружения PATH, аналогично тому, как мы это делали для самой команды “python”. Обратите внимание, что для этого подойдёт любая команда
архивации, если у неё есть интерфейс командной строки, чтобы ей можно было
передавать аргументы из нашего сценария.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы