A byte of Python, Задача с backup , os.mkdir()

Помогите пожалуйста разобраться почему не работает?

import os
import time

source = ['home/radmir/PycharmProjects/PycharmProjects/pythonProject1/functions_A_Byte_of_Python']

target_dir = 'home/radmir/test_folder_1_backup1'

today = target_dir +os.sep + time.strftime('%Y%m%d')

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)

zip_command = "zip -qr {0} {1}".format(target, ' '.join(source))

if os.sistem(zip_command) == 0:
    print('Резервная копия успешно создана в ', target)
else:
    print('Создание резервной копии не удалось!')
    

Ошибка:

usr/bin/python3.8 /home/radmir/PycharmProjects/PycharmProjects/pythonProject1/backup_ver4.py
Введите коментарий --> тали вали сапоги сандали
Traceback (most recent call last):
  File "/home/radmir/PycharmProjects/PycharmProjects/pythonProject1/backup_ver4.py", line 20, in <module>
    os.mkdir(today)
FileNotFoundError: [Errno 2] No such file or directory: 'home/radmir/test_folder_1_backup1/20210521'

Process finished with exit code 1

P.S Мой первый вопрос сообществу,если что не так сорян.


Ответы (3 шт):

Автор решения: Михаил Муругов

Очевидно, потому что нет такого пути. Точнее, нет какой-либо папки из этого пути. Чтобы создавать папки "попутно", используйте os.makedirs(path, exists_ok=True).
И обратите внимание, что Вы пути задаёте не абсолютно, а относительно текущей рабочей директории.

→ Ссылка
Автор решения: handowl
import os
import time

source = 'home/radmir/PycharmProjects/PycharmProjects/pythonProject1/functions_A_Byte_of_Python'

target_dir = 'home/radmir/test_folder_1_backup1'

today = time.strftime('%Y%m%d')
target_dir = os.path.join(target_dir, today)

comment = input('Введите коментарий -->')

target = time.strftime('%H%M%S')
if len(comment) != 0:
    target +=  '_' + comment.replace(' ', '_')

target += '.zip'

try:
    os.mkdir(target_dir)
    print('Католог успешно создан', today)
except OSError as error:
    print('Похоже, папка уже существовала')

zip_command = f"zip -qr {os.path.join(target_dir, target)} {source}"
print(zip_command)

if os.system(zip_command) == 0:
    print('Резервная копия успешно создана в ', target)
else:
    print('Создание резервной копии не удалось!')

Вроде работает, проверяйте.

→ Ссылка
Автор решения: Эникейщик

Замените относительные пути

source = ['home/radmir/PycharmProjects/PycharmProjects/pythonProject1/functions_A_Byte_of_Python']
target_dir = 'home/radmir/test_folder_1_backup1'

на абсолютные

source = [r'/home/radmir/PycharmProjects/PycharmProjects/pythonProject1/functions_A_Byte_of_Python']
target_dir = r'/home/radmir/test_folder_1_backup1'
→ Ссылка