Форум сайта python.su
Добрый день !
Я сейчас учу python3 по книге AbyteofPythonRussian-2.01.
Там такой пример программы
# -*- coding: utf-8 -*-
'''
1. Файлы и каталоги, которые необходимо скопировать, собираются в список.
2. Резервные копии должны храниться в основном каталоге резерва.
3. Файлы помещаются в zip-архив.
4. Именем для zip-архива служит текущая дата и время.
5. Будем использовать стандартную командуzip, имеющуюся по умолчанию в любом
стандартном дистрибутиве GNU/Linux. Пользователи Windows могут установить её
со страницы проекта GnuWin32 и добавить “C:\Program Files\GnuWin32\bin” к си-
стемной переменной окружения PATH, аналогично тому, как мы это делали для са-
мой команды “python”. Обратите внимание, что для этого подойдёт любая команда
архивации, если у неё есть интерфейс командной строки, чтобы ей можно было
передавать аргументы из нашего сценария.
'''
import os
import time
# 1. Файлы и каталоги, которые необходимо скопировать, собираются в список.
source =
# Заметьте, что для имён, содержащих пробелы, необходимо использовать
# двойные кавычки внутри строки.
# 2. Резервные копии должны храниться в основном каталоге резерва.
target_dir = ‘D:\\book’# Подставьте тот путь, который вы будете использовать
# 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('Создание резервной копии НЕ УДАЛОСТЬ')
input()
Я сделал все как описано но результат выдаёт.
zip" �� ���� ����७��� ��� ��譥�
��������, �ᯮ��塞�� �ணࠬ��� ��� ������ 䠩���.
Создание резервной копии НЕ УДАЛОСТЬ
Команда zip_command не работает в dos пишет что
zip не является внутренней или внешней командой,
исполняемой программой или пакетным файлом .
Подскажите что надо сделать чтобы все заработало спасибо заранее
Офлайн
Установить виртуальную машину с Linux, zip на Windows по умолчанию не робит
Если нужны архивы на Windows самый простой выход использовать Python'овский zipfile
Отредактировано ajib6ept (Июнь 22, 2014 09:21:27)
Офлайн
Попробую ответ переиначить. Ваш скрипт предполагает что в ОС установлена программа zip, а ее нет.
Значит надо установить zip или аналоги. Например "http://www.7-zip.org/".
На самом деле в Windows похоже есть встроенный компрессор, но без интерфейса командной строки.
http://stackoverflow.com/questions/11021879/creating-a-zipped-compressed-folder-in-windows-using-powershell-or-the-command-l
Офлайн
У меня 7zip установлен может есть команда чтобы запустить через командную архиватор
или сесть команда для windows 7 чтобы за разархивировать файл вить zip архиватор стоит по умолчанию в windows 7
Отредактировано fox85 (Июнь 22, 2014 15:48:42)
Офлайн
fox85она называется 7z
может есть команда
subprocess.check_call("7z a -r arh_name dirname",shell=1)
fox85Ага, только воспользоваться им из командной строки нельзя.
стоит по умолчанию в windows 7
Офлайн
Добрый день !
Скажите можно заставить работать эту программу в widows 7 вот ссылка http://gnuwin32.sourceforge.net/packages/zip.htm
В книги советуют эту программу для zip архивации.
Как можно её настроить подскажите спасибо заранее.
Чтобы работала через комадную строку
Команда zip архива
Отредактировано fox85 (Июнь 23, 2014 07:09:24)
Офлайн
У меня была такая же проблема.
ту программу что советует fox85 надо поставить.
после установки сделать следующее:
у меня виндовс-7, поэтому далее напишу как в ней.
правой кнопкой мыши на мой компьютер, св-ва, дополнительные параметры системы, загрузка и восстановление, переменные среды.
там два подокна:
в верхнем подокне “переменные среды пользователя для имя_пользователя”
щелкаем path, изменить, и вставить(добавить в конец) такую строку C:\Python34
в нижнем подокне “системные переменные”
щелкаем Path, изменить, и вставить(добавить в конец) такую строку
C:\Program Files (x86)\GnuWin32\bin
после этого скрипт на питоне заработал.
Офлайн
sistem13
Это называется прописать в системных путях.
Офлайн