Найти - Пользователи
Полная версия: Помогите новичку разобраться.
Начало » Центр помощи » Помогите новичку разобраться.
1 2
Man4o
Начал изучать пайтон по книжке A Byte of Python.
Там есть здание:
Составить программу, которая создаёт резервные
копии всех наших важных файлов.
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 = ['"C:\\My Documents"', 'C:\\Code']
# Заметьте, что для имён, содержащих пробелы, необходимо использовать
# двойные кавычки внутри строки.
# 2. Резервные копии должны храниться в основном каталоге резерва.
target_dir = 'E:\\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('Создание резервной копии НЕ УДАЛОСЬ')

На выходе ошибка:

“zip” �� ���� ����७��� ��� ���譥�
��������, �ᯮ��塞�� �ணࠬ��� ��� ������ 䠩���.
Создание резервной копии НЕ УДАЛОСЬ
Process finished with exit code 0

Пишу на pycharm на win10. Не могу понять, в чем проблема. Сделал всё что написано, но ничего не мопогло. В dos пишет, что команда zip не является внутренней или внешней командой,
исполняемой программой или пакетным файлом. Это значит, что GnuWin32 не видно в виндовс? Или как? Очень нужно найти решение конкретно этого кода, он по книге будет усложняться. Пожалйста помогите!!
FishHook
Man4o
Дебаг - дело тонкое. Для начала удостоверьтесь, что ваша команда zip в вашей ОС вообще-то работает, безо всякого питона, просто из коммандной строки системы
JOHN_16
Да, в данный момент проблема в том что Windows не знает такую программу zip. А значит у вас проблема с пунктом 5, но не в коде, а в инфраструктуре. Ваша задача сделать так что бы в консоли винды (то что вы dos называете) команда zip работала.
Man4o
JOHN_16
Ваша задача сделать так что бы в консоли винды (то что вы dos называете) команда zip работала.
Так а разве того, что я добавил в область видимости переменной path путь в этому архиватору недостаточно?Я просто не совсем понимаю, что еще нужно сделать, чтобы он был виден в консоли видовс…
FishHook
Man4o
Так а разве того, что я добавил в область видимости переменной path путь в этому архиватору недостаточно?
Должно быть достаточно. Но вот вообще не факт, что у виндового зипа такая же система параметров, как у никсового. Просто запустите руками с теми параметрами, которые хотите передать программно и проверьте.
PEHDOM
Man4o под вендой рекомендую всегда писать zip.exe(еще лучше с полным указанием пути к файлу), а то может у вас гдето zip.bat/zip.cmd/zip.vbs… лежит, или, что весьма часто случается с новичками, ваш скрипт называеться zip.py. Как вы думаете какую из этих zip.* выберет для запуска ОС?
Egorro13
Man4o
добавить “C:\Program Files\GnuWin32\bin” к си-
стемной переменной окружения PATH
Скорее всего, установлена ОС x64, а GnuWin32 - 32-битная программа, поэтому и ставится она в c:\Program Files (x86)\, т.е. инструкция актуальна для 32-битной Windows. Найди, куда программа установилась, этот путь в path и добавляй
PEHDOM
ваш скрипт называеться zip.py
Для винды же это обычный (не запускаемый) файл, просто так по команде zip он не запустится
PEHDOM
Egorro13
Для винды же это обычный (не запускаемый) файл, просто так по команде zip он не запустится
с чего бы это? если при установке на снять галочку с “ ассоциациировать с пайтоном” и не удалять py launcher то вполне себе запустится.
d:\PL\test\zip.py:
 print('helooWORLD')

d:\PL\test>zip
helooWORLD

d:\PL\test>
Egorro13
PEHDOM
Странно, у себя еще раз проверил - запускается по ассоциации только с указанием расширения, просто по имени - выдает ошибку. Хотя в командной строке уже лет 15 стараюсь не связываться, могу чего-то просто не знать))
PEHDOM
ХЗ только что провел новую усстановку пайтона с нуля, все работает.

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