Форум сайта python.su
Начал изучать язык по книге “Укус Питона” 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('Создание резервной копии НЕ УДАЛОСЬ')
Офлайн
без понятия!
Если в CMD ввести руками то что выводится вам “print(zip_command)”
Что будет?
Офлайн
Отредактировано ZerG (Фев. 20, 2017 13:30:07)
Офлайн
При вставке в командную строку пишет “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('Создание резервной копии НЕ УДАЛОСЬ')
Офлайн
Создание переменной окружения zip ничего не меняет. Менять надо переменную окружения path
Офлайн
Прописал Path, но так же без полного пути ни фига не работает…
Офлайн
1. Покажите как прописали.
2. shell перезапустили?
3. dir папки в которой лежит исполняемый файл.
Офлайн
1.
2. Shell да, перезапускал.
3.
Офлайн
Попробуйте
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")
Офлайн
…может пользователь консоли не тот?Doza_and, большое Вам спасибо! У меня есть привычка, ну чтоб не подхватить в интернете всякий триппер, работать под простым пользователем. Вот щас запустил IDLE из-под админа, и все стало ОК.
Офлайн