MinuteX
@MinuteX
Люблю чай и играть

Здравствуйте, можете оценить код?

Это один из первых моих кодов которые мне не задали делать в школе, а который реально для чего то нужен и полезен
И хотел узнать, на сколько хорошо я справился с поставленой перед собой задачей
Задача была следующей:
1) Он должен копировать папку(Из указанной директории) и создавать из нее архив (В указанную директорию)
2) Его должны мочь использовать люди не знающие языка
3) Он должен быть читабельный
А вот и сам код:

import shutil
import time
from datetime import datetime

# Настройки

t = 10
# ↑↑↑ Интервал между бэкапами в минутах ↑↑↑
directory_copy = 'C:\\Users\\MinuteX\\Desktop\\Copy'
# ↑↑↑ Вписать директория откуда копировать папку
directory = 'C:\\Users\\MinuteX\\Downloads\\Paste'
# ↑↑↑ Вписать директорию куда будут копироватся файлы

# ||| ВАЖНО!!! ВСЕ СЛЕШЫ В ДИРЕКТОРИЯХ ДОЛЖНЫ БЫТЬ ДВОЙНЫМИ ↑↑↑

i = 0
t *= 60

while True:

    dt = datetime.today().strftime("%Y-%m-%d-%H.%M.%S")
    name = f"backup_{i}_{dt}"
    direct = f"{directory}\\{name}"

    shutil.make_archive(
                       direct,
                       'zip',
                       directory_copy
                       )

    print("Generate new backup: " + name)

    i += 1

    time.sleep(t)
  • Вопрос задан
  • 365 просмотров
Решения вопроса 1
fox_12
@fox_12 Куратор тега Python
Расставляю биты, управляю заряженными частицами
directory_copy = 'C:\\Users\\MinuteX\\Desktop\\Copy'

используйте os.path.join по возможности

direct = f"{directory}\\{name}"
используйте os.path.join

print("Generate new backup: " + name)
раз уже начали писать строки с f-форматированием - то:
print(f"Generate new backup: {name}")

t = 10
# ↑↑↑ Интервал между бэкапами в минутах ↑↑↑

Может лучше скрипт в крон добавить?

print("Generate new backup: " + name)
И что - будете все это время смотреть в консоль на принты? Добавьте логирование в файл, что-ли...
Ответ написан
Пригласить эксперта
Ответы на вопрос 4
Zoominger
@Zoominger Куратор тега Python
System Integrator
А что тут оценивать-то? Это ж чуть пошире хэллоуворлда.
Если убрать лишние пустые строки и капитанские комментарии, то кода будет на один коротенький пук.
Ответ написан
Комментировать
saboteur_kiev
@saboteur_kiev Куратор тега Python
software engineer
Вместо ненужных комментариев (кстати лучше юзать только английский)
давайте нормальные, вменяемые имена переменным.

t -> backup_interval
directory_copy -> source_directory
directory -> target_directory
dt -> current_time

Это что такое?
i ->
t ->
name ->
direct ->

Нужно вычитывать весь скрипт, чтобы понять. При нормальных названиях переменных и функций, код читается на порядок быстрее и проще.
Ответ написан
Комментировать
szafranji
@szafranji
wro
Поменьше комментариев (для такой программы) и пустого пространства, а так все ок.
Ответ написан
Комментировать
@pythonist1234
Не "слешы", а "слеши".
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы