изучаю python по книге Byte of Python и немного не понимаю как реализовать следующую задачу:
Ещё одним возможным улучшением была бы возможность передавать сценарию другие файлы и каталоги прямо в командной строке. Эти имена можно получать из списка sys.argv и добавлять к нашему списку source при помощи метода extend класса list.
и вот мой код:
import os, time as t
# Файлы и каталоги, которые необходимо скопировать, собираются в список.
source = ['"C:\\my documents"']
# Резервные копии должны храниться в основном каталоге резерва.
target_dir = 'D:\\backup'
today = os.path.join(target_dir, t.strftime('%Y%m%d'))
if not os.path.exists(today):
os.mkdir(today) # создание каталога, если он отсутствует
print('Каталог успешно создан', today)
now = t.strftime('%H%M%S.zip')
comment = input('Введите имя zip архива --> ')
if len(comment) == 0: # Если пользователь ничего не ввел, то имя zip архива - now
target = os.path.join(today, now)
else:
target = os.path.join(today, comment.replace(' ', '_') + '.zip')
# Используем команду "zip" для помещения файлов в zip-архив:
zip_command = "zip -qr {0} {1}".format(target, ' '.join(source))
# Запускаем создание резервной копии:
if os.system(zip_command) == 0:
print('Резервная копия успешно создана в', target)
else:
print('Создание резервной копии НЕ УДАЛОСЬ')
Ценятся развернутые ответы. Всем ответившим огромное спасибо!