Уведомления

Группа в Telegram: @pythonsu
  • Начало
  • » Python для новичков
  • » Создаем программу которая подключается к FTP скачивает файлы , разворачивает zip, заворачивает паку в zip архив [RSS Feed]

#1 Окт. 28, 2017 17:52:16

VIRTOK
Зарегистрирован: 2017-10-23
Сообщения: 77
Репутация: +  0  -
Профиль   Отправить e-mail  

Создаем программу которая подключается к FTP скачивает файлы , разворачивает zip, заворачивает паку в zip архив

Нужно создать программу которая
1) Подключается к FTP
2) Скачивает каталог(с фалами) с FTP
4) Создается каталог куда кладутся файлы с FTP
3) В каталог с скаченными файлами , есть zip архив , разархивируем его .
4) После выберем нужные каталоги (с файлами в нутри) и перекладываем в другие папки
5) Берем паку и архивируем ее в формате zip

Офлайн

#2 Окт. 28, 2017 19:29:19

marvellik
Зарегистрирован: 2016-05-15
Сообщения: 639
Репутация: +  73  -
Профиль   Отправить e-mail  

Создаем программу которая подключается к FTP скачивает файлы , разворачивает zip, заворачивает паку в zip архив

Python работа с FTP
Создается каталог
разархивировать zip

Отредактировано marvellik (Окт. 28, 2017 19:30:50)

Офлайн

#3 Ноя. 4, 2017 10:11:24

VIRTOK
Зарегистрирован: 2017-10-23
Сообщения: 77
Репутация: +  0  -
Профиль   Отправить e-mail  

Создаем программу которая подключается к FTP скачивает файлы , разворачивает zip, заворачивает паку в zip архив

Накидал код

 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)

Офлайн

#4 Ноя. 4, 2017 10:38:06

py.user.next
От:
Зарегистрирован: 2010-04-29
Сообщения: 10003
Репутация: +  857  -
Профиль   Отправить e-mail  

Создаем программу которая подключается к FTP скачивает файлы , разворачивает zip, заворачивает паку в zip архив

Выведи

 print(repr(zip_command))
после составления zip_command.



Офлайн

#5 Ноя. 4, 2017 11:20:44

VIRTOK
Зарегистрирован: 2017-10-23
Сообщения: 77
Репутация: +  0  -
Профиль   Отправить e-mail  

Создаем программу которая подключается к FTP скачивает файлы , разворачивает zip, заворачивает паку в zip архив

Ввел

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

Офлайн

#6 Ноя. 4, 2017 11:39:02

py.user.next
От:
Зарегистрирован: 2010-04-29
Сообщения: 10003
Репутация: +  857  -
Профиль   Отправить e-mail  

Создаем программу которая подключается к FTP скачивает файлы , разворачивает zip, заворачивает паку в zip архив

Значит, cmd не может программу zip найти. Попробуй просто выполнить zip через os.system() прямо в новой консоли питона. А потом попробуй выполнить notepad.



Отредактировано py.user.next (Ноя. 4, 2017 11:39:36)

Офлайн

#7 Ноя. 4, 2017 22:36:01

VIRTOK
Зарегистрирован: 2017-10-23
Сообщения: 77
Репутация: +  0  -
Профиль   Отправить e-mail  

Создаем программу которая подключается к FTP скачивает файлы , разворачивает zip, заворачивает паку в zip архив

Прошу помочь написать строчку на Питоне правильно.
На данный момент она имеет вид:

 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'
Выводы
Для корректной работы программы нужно чтобы
строчка имела вид
'"C:\\Program Files (x86)\\7-Zip\\7z.exe" a -tzip D:\\Backup\\20171104\\231947.zip C:\\test1'

Отредактировано VIRTOK (Ноя. 4, 2017 22:47:05)

Офлайн

#8 Ноя. 4, 2017 23:12:59

doza_and
От:
Зарегистрирован: 2010-08-15
Сообщения: 4138
Репутация: +  253  -
Профиль   Отправить e-mail  

Создаем программу которая подключается к FTP скачивает файлы , разворачивает zip, заворачивает паку в zip архив

VIRTOK
строчка имела вид…
1. Напрашивается “Не знала баба горя, купила баба порося”. Сами ведь поставили 7zip в папку с пробелами внутри пути. Теперь вот и мучайтесь с кавычками и в питоне и в командной строке. Я никогда если есть возможность под виндой не ставлю программы в такие дурацкие директории. Вы можете переставить 7zip или добавить путь в path, потому что у другого человека 7zip может стоять в другом месте или вы его переставите например.
2. Вовсе не обязательно целиком строку делать. subprocess.run и список примет, там будет проще кавычки в кавычках поставить.
3. Для разархивации не обязательно использовать 7zip. ZipFile из питона может сделать тоже самое.



Офлайн

#9 Ноя. 5, 2017 13:35:25

VIRTOK
Зарегистрирован: 2017-10-23
Сообщения: 77
Репутация: +  0  -
Профиль   Отправить e-mail  

Создаем программу которая подключается к FTP скачивает файлы , разворачивает zip, заворачивает паку в zip архив

Задача с архиватором решена

 # 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)

Офлайн

#10 Ноя. 5, 2017 13:37:05

VIRTOK
Зарегистрирован: 2017-10-23
Сообщения: 77
Репутация: +  0  -
Профиль   Отправить e-mail  

Создаем программу которая подключается к FTP скачивает файлы , разворачивает zip, заворачивает паку в zip архив

Теперь остался открытый вопрос с работой с Python работа с FTP
Как подключиться к FTP и скачать оттуда файл?

Отредактировано VIRTOK (Ноя. 5, 2017 15:03:50)

Офлайн

  • Начало
  • » Python для новичков
  • » Создаем программу которая подключается к FTP скачивает файлы , разворачивает zip, заворачивает паку в zip архив [RSS Feed]

Board footer

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

Powered by DjangoBB

Lo-Fi Version