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'