Форум программистов, компьютерный форум, киберфорум
Python
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.64/64: Рейтинг темы: голосов - 64, средняя оценка - 4.64
2 / 2 / 0
Регистрация: 15.01.2018
Сообщений: 2

Не срабатывает команда zip

15.01.2018, 23:22. Показов 13505. Ответов 5
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здарвствуйте, сейчас обучаюсь языку по книге A Byte of Python.
В процессе обучения там создается программа для резервного копирования данных.
Файлы в этой программе архивируются, следовательно мы применяем функцию zip,
но с этим у меня возникли проблемы: в окне вывода при запуске программы выдает следующий текст
“”zip“ не является внутренней или внешней
командой, исполняемой программой или пакетным файлом.”
Для исправления ошибки я скачал программу GnuWin32, внес путь к ней в переменную Path, в общем все должно работать, но проблема не исчезает.
Подскажите пожалуйста, как можно решить данную проблему.
Заранее спасибо!
p.s. У меня Windows 10
1
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
15.01.2018, 23:22
Ответы с готовыми решениями:

Команда zip не работает, при попытке создать резервную копию файлов
Здравствуйте, я новичок в питоне, начал читать книжку A Byte of Python и там есть раздел с задачей где нужно создать бекап файлов, ну дак...

Не срабатывает команда
sudo ./configure –add-module=/usr/src/nginx-rtmp-module/ sudo: ./configure: command not found Не срабатывает, всё стоит и...

Не срабатывает команда !?!
Доброго всем дня. Нужен совет спецов по linux, т.к. сам не силен в этом. Дано: -Камера IP с linux не борту -вся прошивка лежит...

5
Эксперт Python
5438 / 3859 / 1215
Регистрация: 28.10.2013
Сообщений: 9,552
Записей в блоге: 1
15.01.2018, 23:55
Цитата Сообщение от Nickolas_Angel Посмотреть сообщение
мы применяем функцию zip
Такой функции для архивирования в python нет, однако есть модуль zipfile с соответствующими методами, которым вы также можете воспользоваться.
Что касается внешней команды zip, то если она в cmd "не является внутренней или внешней командой", возможно, вы либо неправильно прописали путь до ее в PATH (пример варианта правильного пути: C:\GnuWin32\bin) , либо не перезагрузили компьютер.

Добавлено через 1 минуту
P.S. Возможные нюансы связанные именно с windows 10 мне неизвестны, поскольку не пользуюсь этой версией windows.
1
2 / 2 / 0
Регистрация: 15.01.2018
Сообщений: 2
16.01.2018, 00:00  [ТС]
Цитата Сообщение от Garry Galler Посмотреть сообщение
Такой функции для архивирования в python нет, однако есть модуль zipfile с соответствующими методами, которым вы также можете воспользоваться.
Что касается внешней команды zip, то если она в cmd "не является внутренней или внешней командой", возможно, вы либо неправильно прописали путь до ее в PATH (пример варианта правильного пути: C:\GnuWin32\bin) , либо не перезагрузили компьютер.

Добавлено через 1 минуту
P.S. Возможные нюансы связанные именно с windows 10 мне неизвестны, поскольку не пользуюсь этой версией windows.
Вот код моей программы:
Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
import os
import time
 
# 1. Файлы и каталоги, которе необходимо скопировать собираются в список
source = ['C:\Help']
 
# 2. Резервные копии должны храниться в основном каталоге резерва.
target_dir = 'C:\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 {} {}".format(target, ' '.join(source))
 
# Запускаем создание резервной копии
print(zip_command)
if os.system(zip_command) == 0:
    print('Резервная копия успешно создана в ', target)
else:
    print('Создание резервной копии не удалось')


А вот то, что выдает при запуске:
zip -qr C:\Backup\20180115235910.zip C:\Help
"zip" не является внутренней или внешней
командой, исполняемой программой или пакетным файлом.
Создание резервной копии не удалось

Подскажите, что необходимо изменить в коде для использования модуля zipfile(я пробовал просто прописать в начале программы import zipfile и это также не изменило итога)
1
Эксперт Python
5438 / 3859 / 1215
Регистрация: 28.10.2013
Сообщений: 9,552
Записей в блоге: 1
16.01.2018, 00:23
Цитата Сообщение от Nickolas_Angel Посмотреть сообщение
для использования модуля zipfile(
нужно прочитать его документацию.
Пример из документации:
Python
1
2
with ZipFile('spam.zip', 'w') as myzip:
    myzip.write('eggs.txt')
Каталоги я не архивировал - думаю, там нужно цикл по всем файлам делать.
zipfile также поддерживает запуск из комадной строки:
Code
1
python -m zipfile -c archive.zip path/folder/
Добавлено через 5 минут
Вот пример архивации каталога c непустыми субкаталогами:
Python
1
2
3
4
5
6
7
8
import os, zipfile
source = r'd:\test'
 
with  zipfile.ZipFile('spam.zip', 'w', zipfile.ZIP_DEFLATED) as arch:
    for root, dirs, files in os.walk(source):
        for tarfile in files:
            if tarfile != '':
                arch.write(root+'\\'+tarfile)
1
0 / 0 / 0
Регистрация: 12.01.2018
Сообщений: 1
16.01.2018, 18:38
Цитата Сообщение от Nickolas_Angel Посмотреть сообщение
Вот код моей программы:
Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
import os
import time
# 1. Файлы и каталоги, которе необходимо скопировать собираются в список
source = ['C:\Help']
# 2. Резервные копии должны храниться в основном каталоге резерва.
target_dir = 'C:\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 {} {}".format(target, ' '.join(source))
# Запускаем создание резервной копии
print(zip_command)
if os.system(zip_command) == 0:
    print('Резервная копия успешно создана в ', target)
else:
    print('Создание резервной копии не удалось')
Похоже здесь просто вызов внешней консольной проги zip, которая почти всегда присутствует в никсах, но отсутствует в винде. Для архивации можно использовать shutil.make_archive().
0
1 / 1 / 0
Регистрация: 13.07.2019
Сообщений: 1
13.07.2019, 10:56
Нужно внести путь к zip.exe файлу в переменную Path(в обе колонки: переменные среды пользователя для "Ваше имя или..." и в системные переменные). Обязательно посмотрите правильность пути! У меня Windows 10 64 бита, мой путь таков (C:\Program Files (x86)\GnuWin32\bin), этот путь лучше всего скопировать, для безошибочности! Потом перезагрузите комп и попробуйте вбить в cmd - zip, должно все сработать!
Вот мой пример кода:
Python
1
2
3
4
5
6
7
8
9
10
import os
import time
source = ['C:\def']
target_dir = 'C:\\Backup'
target = target_dir + os.sep + time.strftime('%Y%m%d%H%M%S') + '.zip'
zip_command = "zip -qr {0} {1}".format(target, ' '.join(source))
if os.system(zip_command) == 0:
    print('Резервная копия успешно создана в', target)
else:
    print('Создание резервной копии НЕ УДАЛОСЬ')
И не забудьте создать попку C:\\Backup
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
13.07.2019, 10:56
Помогаю со студенческими работами здесь

Команда UPDATE не срабатывает
Суть: Выбираем строку из GridView, срабатывает - GridViewRow row = GridView1.SelectedRow; string...

Не срабатывает команда OnClientClick
Всем добрый день! Создаю на форме кнопку через код:: Button btnAddCalculation = new Button(); btnAddCalculation.ID =...

Не срабатывает команда в system
Есть код: #include <stdio.h> #include <stdlib.h> int main() { printf("start\n"); system("cd C:\\Program Files...

Не срабатывает команда myProcess.CloseMainWindow()
команда myProcess.Kill() работает - но убивает мою запущенную программу командой myProcess = Process.Start(shomedir +...

Не срабатывает команда nircmdc sendmouse
Прошу помощи у гуру) Ситуация: есть прога которую нужно запустить и прожать в ней 1 кнопку("запуск"). В процессе как ни странно...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Новые блоги и статьи
Оптимизация кода на разграничение прав доступа к элементам формы
Maks 13.04.2026
Алгоритм из решения ниже реализован на нетиповом документе, разработанного в конфигурации КА2. Задачи, как таковой, поставлено не было, проделанное ниже исключительно моя инициатива. Было так:. . .
Контроль заполнения и очистка дат в зависимости от значения перечислений
Maks 12.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеПерсонала", разработанного в конфигурации КА2. Задача: реализовать контроль корректности заполнения дат назначения. . .
Архитектура слоя интернета для сервера-слоя.
Hrethgir 11.04.2026
В продолжение https:/ / www. cyberforum. ru/ blogs/ 223907/ 10860. html Знаешь что я подумал? Раз мы все источники пишем в голове ветки, то ничего не мешает добавить в голову такой источник, который сам. . .
Подстановка значения реквизита справочника в табличную часть документа
Maks 10.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеПерсонала", разработанного в конфигурации КА2. Задача: при выборе сотрудника (справочник Сотрудники) в ТЧ документа. . .
Очистка реквизитов документа при копировании
Maks 09.04.2026
Алгоритм из решения ниже применим как для типовых, так и для нетиповых документов на самых различных конфигурациях. Задача: при копировании документа очищать определенные реквизиты и табличную. . .
модель ЗдравоСохранения 8. Подготовка к разному выполнению заданий
anaschu 08.04.2026
https:/ / github. com/ shumilovas/ med2. git main ветка * содержимое блока дэлэй из старой модели теперь внутри зайца новой модели 8ATzM_2aurI
Блокировка документа от изменений, если он открыт у другого пользователя
Maks 08.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа, разработанного в конфигурации КА2. Задача: запретить редактирование документа, если он открыт у другого пользователя. / / . . .
Система безопасности+живучести для сервера-слоя интернета (сети). Двойная привязка.
Hrethgir 08.04.2026
Далее были размышления о системе безопасности. Сообщения с наклонным текстом - мои. А как нам будет можно проверить, что ссылка наша, а не подделана хулиганами, которая выбросит на другую ветку и. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru