Форум сайта python.su
Нужно создать программу которая
1) Подключается к FTP
2) Скачивает каталог(с фалами) с FTP
4) Создается каталог куда кладутся файлы с FTP
3) В каталог с скаченными файлами , есть zip архив , разархивируем его .
4) После выберем нужные каталоги (с файлами в нутри) и перекладываем в другие папки
5) Берем паку и архивируем ее в формате zip
Офлайн
Python работа с FTP
Создается каталог
разархивировать zip
Отредактировано marvellik (Окт. 28, 2017 19:30:50)
Офлайн
Накидал код
import os import time # 1. Файлы и каталоги, которые необходимо скопировать, собираются в список. source = ['C:\\test1'] # Заметьте, что для имён, содержащих пробелы, необходимо использовать # двойные кавычки внутри строки. # 2. Резервные копии должны храниться в основном каталоге резерва. target_dir = 'D:\\Backup' # Подставьте тот путь, который вы будете использовать. # 3. Файлы помещаются в zip-архив. # 4. Текущая дата служит именем подкаталога в основном каталоге today = target_dir + os.sep + time.strftime('%Y%m%d') # Текущее время служит именем zip-архива now = time.strftime('%H%M%S') # Создаём каталог, если его ещё нет if not os.path.exists(today): os.mkdir(today) # создание каталога print('Каталог успешно создан', today) # Имя zip-файла target = today + os.sep + now + '.zip' # 5. Используем команду "zip" для помещения файлов в zip-архив zip_command = "zip -qr {0} {1}".format(target, ' '.join(source)) # Запускаем создание резервной копии if os.system(zip_command) == 0: print('Резервная копия успешно создана в', target) else: print('Создание резервной копии НЕ УДАЛОСЬ')
C:\Users\Master\AppData\Local\Programs\Python\Python36\python.exe D:/IdeaProjects/Python/Бекап/2-backup_ver2.py Каталог успешно создан D:\Backup\20171104 "zip" �� ���� ����७��� ��� ���譥� ��������, �ᯮ��塞�� �ணࠬ��� ��� ������ 䠩���. Создание резервной копии НЕ УДАЛОСЬ Process finished with exit code 0
Отредактировано VIRTOK (Ноя. 4, 2017 10:12:51)
Офлайн
Выведи
print(repr(zip_command))
Офлайн
Ввел
print(repr(zip_command))
после составления zip_command.
C:\Users\Master\AppData\Local\Programs\Python\Python36\python.exe D:/IdeaProjects/Python/Backup/1-Backup.py Каталог успешно создан D:\Backup\20171104 'zip -qr D:\\Backup\\20171104\\121831.zip C:\\test1' "zip" �� ���� ����७��� ��� ���譥� ��������, �ᯮ��塞�� �ணࠬ��� ��� ������ 䠩���. Создание резервной копии НЕ УДАЛОСЬ Process finished with exit code 0
Офлайн
Значит, cmd не может программу zip найти. Попробуй просто выполнить zip через os.system() прямо в новой консоли питона. А потом попробуй выполнить notepad.
Отредактировано py.user.next (Ноя. 4, 2017 11:39:36)
Офлайн
Прошу помочь написать строчку на Питоне правильно.
На данный момент она имеет вид:
zip_command = "C:\\Program Files (x86)\\7-Zip\\7z.exe" ' ' "a -tzip {0} {1}".format(target, ' '.join(source))
Команда для архивации 'C:\\Program Files (x86)\\7-Zip\\7z.exe a -tzip D:\\Backup\\20171104\\231947.zip C:\\test1'
Отредактировано VIRTOK (Ноя. 4, 2017 22:47:05)
Офлайн
VIRTOK1. Напрашивается “Не знала баба горя, купила баба порося”. Сами ведь поставили 7zip в папку с пробелами внутри пути. Теперь вот и мучайтесь с кавычками и в питоне и в командной строке. Я никогда если есть возможность под виндой не ставлю программы в такие дурацкие директории. Вы можете переставить 7zip или добавить путь в path, потому что у другого человека 7zip может стоять в другом месте или вы его переставите например.
строчка имела вид…
Офлайн
Задача с архиватором решена
# coding:utf8 # создание архива директории с помощью модуля zipfile #-------------------------------------------------------------------- import os import time import zipfile # Директория для создания архива #source=input('Укажите файл для упаковки в zip архив -->') source='D:\\BT1' # 2. Резервные копии должны храниться в основном каталоге резерва. target_dir = 'C:\\BACKUP' # Подставьте тот путь, который вы будете использовать. # Создаём каталог, если его ещё нет if not os.path.exists(target_dir): os.mkdir(target_dir) # создание каталога print('Каталог успешно создан', target_dir) # 3. Файлы помещаются в zip-архив. # 4. Текущая дата служит именем подкаталога в основном каталоге today = target_dir + os.sep + time.strftime('%Y%m%d') # Текущее время служит именем zip-архива now = time.strftime('%H%M%S') # Запрашиваем комментарий пользователя для имени файла comment = input('Введите комментарий --> ') if len(comment) == 0: # проверяем, введён ли комментарий target = today + os.sep + now + '.zip' else: target = today + os.sep + now + '_' + \ comment.replace(' ', '_') + '.zip' # Создаём каталог, если его ещё нет if not os.path.exists(today): os.mkdir(today) # создание каталога print('Каталог успешно создан', today) zipp=zipfile.ZipFile(target,mode='w')# создание архива for root, dirs, files in os.walk(source):# получаем адрес каталога и имена подкатологов и файлов for file in files: zipp.write(os.path.join(root,file))# пишем файлы в архив zipp.close()
Отредактировано VIRTOK (Ноя. 5, 2017 13:35:59)
Офлайн
Теперь остался открытый вопрос с работой с Python работа с FTP
Как подключиться к FTP и скачать оттуда файл?
Отредактировано VIRTOK (Ноя. 5, 2017 15:03:50)
Офлайн