import os
import time
source = ['"C:\\My Documents"', 'C:\\Code']
target_dir = 'E:\\Backup' # Подставьте ваш путь.
target = target_dir + os.sep + time.strftime('%Y%m%d%H%M%S') + '.zip'
zip_command = "zip -qr {0} {1}".format(target, ' '.join(source))
if os.system(zip_command) == 0:
print('Резервная копия успешно создана в', target)
else:
print('Создание резервной копии НЕ УДАЛОСЬ')
Это решение задачи, в которой нужно было реализовать программу, создающую копии резервных файлов, а также выполнить условия:
1. Файлы и каталоги, которые необходимо скопировать, собираются в список.
2. Резервные копии должны храниться в основном каталоге резерва.
3. Файлы помещаются в zip-архив.
4. Именем для zip-архива служит текущая дата и время.
Это задача - лишь пример, в которой нам предоставлено решение с комментариями и объяснением, однако большинство вещей я не понял, несмотря на то, что хорошо ознакомился с предыдущей теорией. Вот непонятные моменты:
1. Почему пути, куда мы копируем файлы в переменной target_dir складывается с функцией разделения os.sep, функцией, выдающей время, которое должно стать названием и строка '.zip'? Для меня это какая-то каша, так как до этого изучал только pascal и для меня переменные это строго числа либо строки, да и в принципе, я решал только логические и математические задачи с кодом и не работал с модулями и какими-либо внешними задачами.
2. Что такое -qr? В объяснении сказано, что это необходимо, чтобы программа работала тихо и рекурсивно. Если с рекурсивно все понятно, то что такое тихо?
3. Почему в zip_command присваивается команда в строке?
Вопросы практически по каждой строчке, гуглил, но с такой формулировкой, как у меня не находил.
(P.S. Извиняюсь за такой тупой вопрос, но я действительно не понимаю. И хотел бы попросить общего совета у программистов, как в принципе разбираться в таких языках, как питон, где упор происходит на библиотеки, модули, объекты и т.д. Как говорил ранее, у меня до этого был только паскаль и задачи по программированию - исключительно математика, а тут нет четкой типизации данных, куча модулей с функциями. Я довольно легко понимаю теорию и синтаксис, но как только это переходит в какие-то задачи с кодом, в котором применяется все комплексно, теряюсь, это я еще не начал ООП).
import time
source = ['"C:\\My Documents"', 'C:\\Code']
target_dir = 'E:\\Backup' # Подставьте ваш путь.
target = target_dir + os.sep + time.strftime('%Y%m%d%H%M%S') + '.zip'
zip_command = "zip -qr {0} {1}".format(target, ' '.join(source))
if os.system(zip_command) == 0:
print('Резервная копия успешно создана в', target)
else:
print('Создание резервной копии НЕ УДАЛОСЬ')
Это решение задачи, в которой нужно было реализовать программу, создающую копии резервных файлов, а также выполнить условия:
1. Файлы и каталоги, которые необходимо скопировать, собираются в список.
2. Резервные копии должны храниться в основном каталоге резерва.
3. Файлы помещаются в zip-архив.
4. Именем для zip-архива служит текущая дата и время.
Это задача - лишь пример, в которой нам предоставлено решение с комментариями и объяснением, однако большинство вещей я не понял, несмотря на то, что хорошо ознакомился с предыдущей теорией. Вот непонятные моменты:
1. Почему пути, куда мы копируем файлы в переменной target_dir складывается с функцией разделения os.sep, функцией, выдающей время, которое должно стать названием и строка '.zip'? Для меня это какая-то каша, так как до этого изучал только pascal и для меня переменные это строго числа либо строки, да и в принципе, я решал только логические и математические задачи с кодом и не работал с модулями и какими-либо внешними задачами.
2. Что такое -qr? В объяснении сказано, что это необходимо, чтобы программа работала тихо и рекурсивно. Если с рекурсивно все понятно, то что такое тихо?
3. Почему в zip_command присваивается команда в строке?
Вопросы практически по каждой строчке, гуглил, но с такой формулировкой, как у меня не находил.
(P.S. Извиняюсь за такой тупой вопрос, но я действительно не понимаю. И хотел бы попросить общего совета у программистов, как в принципе разбираться в таких языках, как питон, где упор происходит на библиотеки, модули, объекты и т.д. Как говорил ранее, у меня до этого был только паскаль и задачи по программированию - исключительно математика, а тут нет четкой типизации данных, куча модулей с функциями. Я довольно легко понимаю теорию и синтаксис, но как только это переходит в какие-то задачи с кодом, в котором применяется все комплексно, теряюсь, это я еще не начал ООП).