Форум сайта python.su
0
Начал изучать язык по книге “Укус Питона” Swaroop C. H.
Там есть задачка cоставить программу, которая создаёт резервные копии файлов.
import os import time # 1. Файлы и каталоги, которые необходимо скопировать, собираются в список. source = ['E:\\Downloads\\TXT', 'E:\\Downloads\\_JPG'] # Заметьте, что для имён, содержащих пробелы, необходимо использовать # двойные кавычки внутри строки. # 2. Резервные копии должны храниться в основном каталоге резерва. target_dir = 'E:\\Downloads\\_Pyth0n\\Python_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 -r {0} {1}'.format(target, ' '.join(source)) # Запускаем создание резервной копии print(zip_command) if os.system(zip_command) == 0: print('Резервная копия успешно создана в', target) else: print('Создание резервной копии НЕ УДАЛОСЬ')

Офлайн
61
без понятия!
Если в CMD ввести руками то что выводится вам “print(zip_command)”
Что будет?
Офлайн
61
Отредактировано ZerG (Фев. 20, 2017 13:30:07)
Офлайн
0
При вставке в командную строку пишет “zip” не является внутренней или внешней
командой, исполняемой программой или пакетным файлом.
Вместо просто zip вписал полный путь "C:\\Program Files (x86)\\GnuWin32\\cin\\zip", после чего код заработал!
Ладно, пока пойдет и так. Будем дальше изучать, а с переменными потом разберемся… Спасибо!
import os import time # 1. Файлы и каталоги, которые необходимо скопировать, собираются в список. source = ['E:\\Downloads\\TXT', 'E:\\Downloads\\_JPG'] # Заметьте, что для имён, содержащих пробелы, необходимо использовать # двойные кавычки внутри строки. # 2. Резервные копии должны храниться в основном каталоге резерва. target_dir = 'E:\\Downloads\\_Pyth0n\\Python_backup' # Подставьте тот путь, который вы будете использовать. # 3. Файлы помещаются в zip-архив. # 4. Именем для zip-архива служит текущая дата и время. target = target_dir + os.sep + time.strftime('%Y%m%d%H%M%S') + '.zip' # 5. Используем команду "zip" для помещения файлов в zip-архив zip_command = '"C:\\Program Files (x86)\\GnuWin32\\cin\\zip" -qr {0} {1}'.format(target, ' '.join(source)) # Запускаем создание резервной копии print(zip_command) if os.system(zip_command) == 0: print('Резервная копия успешно создана в', target) else: print('Создание резервной копии НЕ УДАЛОСЬ')
Офлайн
253
Создание переменной окружения zip ничего не меняет. Менять надо переменную окружения path
Офлайн
0
Прописал Path, но так же без полного пути ни фига не работает…
Офлайн
253
1. Покажите как прописали.
2. shell перезапустили?
3. dir папки в которой лежит исполняемый файл.
Офлайн
0
1. 
2. Shell да, перезапускал.
3. 
Офлайн
253
Попробуйте
1. В консоли где выполняете команды наберите set path сравните с тем что у вас приведено (может пользователь консоли не тот?)
2. 7z вместо zip судя по всему тоже должно работать
3 Попробуйте понять что именно запускается
import sys import os import glob def Name(fil): pathlist = os.environ['PATH'].split(os.pathsep) for dr in pathlist: print("try ",dr) for i in glob.glob(os.path.join(dr,fil)): print(i) Name(r"zip.exe")
Офлайн
0
…может пользователь консоли не тот?Doza_and, большое Вам спасибо! У меня есть привычка, ну чтоб не подхватить в интернете всякий триппер, работать под простым пользователем. Вот щас запустил IDLE из-под админа, и все стало ОК.
Офлайн