@rnqlover

Как вставить переменную в os.system?

Доброго времени суток. Подскажите как мне правильно вставить переменную в команду os.system.
Скрипт делает ежемесячный архив бэкапов и чистит директорию с бэкапами. У меня складывается ощущение, что это не самое красивое решение. Пришлось вводить лишнюю переменную arch_name, дабы в имя архива вставлять номер месяца. Скрипт выполняется в первое число месяца, так что приходится отнимать единицу из порядкового номера мес.
import os
import datetime
now_date = datetime.date.today()
month = now_date.month
if int(month) - 1 != 0: #Проверка янв или нет
    t = int(month) - 1
else:
    t = 12
os.chdir('/backup')
arch_name = ('tar cvf /backup_month/' + str(t) + '.tar.gz * && rm *')
os.system(arch_name)
  • Вопрос задан
  • 456 просмотров
Решения вопроса 1
longclaps
@longclaps
[12, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11]
Тебе такая нумерация месяцев нужна? Тогда вот однострочник:
os.system("tar cvf backup/backup_month/%d.tar.gz * && rm backup/*" % ((datetime.date.today().month - 2) % 12 + 1))
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

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