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('Создание резервной копии НЕ УДАЛОСЬ')

Все перепроверил и сделал как надо но почему не работает? Дело в операционной системе или в коде?
  • Вопрос задан
  • 1155 просмотров
Решения вопроса 2
kshnkvn
@kshnkvn
yay ✌️ 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”. Обратите внимание, что для этого подойдёт любая команда
архивации, если у неё есть интерфейс командной строки, чтобы ей можно было
передавать аргументы из нашего сценария.
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

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

Похожие вопросы