Уведомления

Группа в Telegram: @pythonsu

#1 Июль 23, 2019 11:51:37

Man4o
Зарегистрирован: 2019-07-23
Сообщения: 3
Репутация: +  0  -
Профиль   Отправить e-mail  

Помогите новичку разобраться.

Начал изучать пайтон по книжке 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 (Июль 23, 2019 11:54:31)

Офлайн

#2 Июль 23, 2019 12:00:18

FishHook
От:
Зарегистрирован: 2011-01-08
Сообщения: 8312
Репутация: +  568  -
Профиль   Отправить e-mail  

Помогите новичку разобраться.

Man4o
Дебаг - дело тонкое. Для начала удостоверьтесь, что ваша команда zip в вашей ОС вообще-то работает, безо всякого питона, просто из коммандной строки системы



Отредактировано FishHook (Июль 23, 2019 12:00:39)

Офлайн

#3 Июль 23, 2019 12:01:48

JOHN_16
От: Россия, Петропавловск-Камчатск
Зарегистрирован: 2010-03-22
Сообщения: 3292
Репутация: +  221  -
Профиль   Отправить e-mail  

Помогите новичку разобраться.

Да, в данный момент проблема в том что Windows не знает такую программу zip. А значит у вас проблема с пунктом 5, но не в коде, а в инфраструктуре. Ваша задача сделать так что бы в консоли винды (то что вы dos называете) команда zip работала.



_________________________________________________________________________________
полезный блог о python john16blog.blogspot.com

Офлайн

#4 Июль 23, 2019 12:21:50

Man4o
Зарегистрирован: 2019-07-23
Сообщения: 3
Репутация: +  0  -
Профиль   Отправить e-mail  

Помогите новичку разобраться.

JOHN_16
Ваша задача сделать так что бы в консоли винды (то что вы dos называете) команда zip работала.
Так а разве того, что я добавил в область видимости переменной path путь в этому архиватору недостаточно?Я просто не совсем понимаю, что еще нужно сделать, чтобы он был виден в консоли видовс…

Отредактировано Man4o (Июль 23, 2019 12:23:19)

Офлайн

#5 Июль 23, 2019 12:43:21

FishHook
От:
Зарегистрирован: 2011-01-08
Сообщения: 8312
Репутация: +  568  -
Профиль   Отправить e-mail  

Помогите новичку разобраться.

Man4o
Так а разве того, что я добавил в область видимости переменной path путь в этому архиватору недостаточно?
Должно быть достаточно. Но вот вообще не факт, что у виндового зипа такая же система параметров, как у никсового. Просто запустите руками с теми параметрами, которые хотите передать программно и проверьте.



Офлайн

#6 Июль 23, 2019 20:39:53

PEHDOM
Зарегистрирован: 2016-11-28
Сообщения: 2196
Репутация: +  294  -
Профиль   Отправить e-mail  

Помогите новичку разобраться.

Man4o под вендой рекомендую всегда писать zip.exe(еще лучше с полным указанием пути к файлу), а то может у вас гдето zip.bat/zip.cmd/zip.vbs… лежит, или, что весьма часто случается с новичками, ваш скрипт называеться zip.py. Как вы думаете какую из этих zip.* выберет для запуска ОС?



==============================
Помещайте код в теги:
[code python][/code]
Бериегите свое и чужое время.

Отредактировано PEHDOM (Июль 23, 2019 20:45:38)

Офлайн

#7 Июль 23, 2019 21:54:53

Egorro13
Зарегистрирован: 2019-04-16
Сообщения: 105
Репутация: +  5  -
Профиль  

Помогите новичку разобраться.

Man4o
добавить “C:\Program Files\GnuWin32\bin” к си-
стемной переменной окружения PATH
Скорее всего, установлена ОС x64, а GnuWin32 - 32-битная программа, поэтому и ставится она в c:\Program Files (x86)\, т.е. инструкция актуальна для 32-битной Windows. Найди, куда программа установилась, этот путь в path и добавляй
PEHDOM
ваш скрипт называеться zip.py
Для винды же это обычный (не запускаемый) файл, просто так по команде zip он не запустится

Офлайн

#8 Июль 23, 2019 22:25:42

PEHDOM
Зарегистрирован: 2016-11-28
Сообщения: 2196
Репутация: +  294  -
Профиль   Отправить e-mail  

Помогите новичку разобраться.

Egorro13
Для винды же это обычный (не запускаемый) файл, просто так по команде zip он не запустится
с чего бы это? если при установке на снять галочку с “ ассоциациировать с пайтоном” и не удалять py launcher то вполне себе запустится.
d:\PL\test\zip.py:
 print('helooWORLD')

d:\PL\test>zip
helooWORLD

d:\PL\test>



==============================
Помещайте код в теги:
[code python][/code]
Бериегите свое и чужое время.

Отредактировано PEHDOM (Июль 23, 2019 22:34:19)

Офлайн

#9 Июль 23, 2019 22:33:04

Egorro13
Зарегистрирован: 2019-04-16
Сообщения: 105
Репутация: +  5  -
Профиль  

Помогите новичку разобраться.

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

Прикреплённый файлы:
attachment cmd_2019-07-23_22-30-58.jpg (373,6 KБ)

Офлайн

#10 Июль 23, 2019 22:41:58

PEHDOM
Зарегистрирован: 2016-11-28
Сообщения: 2196
Репутация: +  294  -
Профиль   Отправить e-mail  

Помогите новичку разобраться.

ХЗ только что провел новую усстановку пайтона с нуля, все работает.



==============================
Помещайте код в теги:
[code python][/code]
Бериегите свое и чужое время.

Отредактировано PEHDOM (Июль 23, 2019 22:42:39)

Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version