cjd
Янв. 7, 2017 10:36:05
Эта программа которая создаёт резервные
копии всех наших важных файлов.
import os
import time
# 1. Файлы и каталоги, которые необходимо скопировать, собираются в список.
source = ‘“/media/admin/Новый том/myfiles”’
# Заметьте, что для имён, содержащих пробелы, необходимо использовать
# двойные кавычки внутри строки.
# 2. Резервные копии должны храниться в основном каталоге резерва.
target_dir = ‘/media/admin/Новый том/fileback’
# Подставьте тот путь, который вы будете использовать.
# 3. Файлы помещаются в zip-архив.
# 4. Текущая дата служит именем подкаталога в основном каталоге
today = target_dir + os.sep + time.strftime('%Y%m%d')
# Текущее время служит именем zip-архива
now = time.strftime('%H%M%S')
# Создаём каталог, если его ещё нет
if not os.path.exists(today):
….os.mkdir(today) # создание каталога
print('Каталог успешно создан', today)
# Имя zip-файла
target = today + os.sep + now + ‘.zip’
# 5. Используем команду “zip” для помещения файлов в zip-архив
zip_command = “zip -qr {0} {1}”.format(target, ‘ ’.join(source))
# Запускаем создание резервной копии
if os.system(zip_command) == 0:
….print('Резервная копия успешно создана в', target)
else:
….print('Создание резервной копии НЕ УДАЛОСЬ')
система ubuntu
python 3.4.4
строка: os.mkdir(today)
Ошибка: FileNotFoundError: Не найден файл или директория.
В чем проблема?
FishHook
Янв. 7, 2017 10:48:04
mkdir создает только один уровень каталогов в дереве файловой системы.
То есть так можно
os.mkdir("existing_dir/new_dir")
а так нет
os.mkdir("existing_dir/new_dir1/new_dir2")
cjd
Янв. 7, 2017 10:52:34
Мне нужно, чтобы создавал несколько уровней каталогов в дереве файловой системе.
Как это можно сделать?
FishHook
Янв. 7, 2017 10:56:36
os.makedirs
cjd
Янв. 7, 2017 11:37:27
Каталог успешно создан “/media/admin/Новый том/fileback/20170107”
zip I/O error: No such file or directory
zip error: Could not create output file (/media/admin/Новый том/fileback/20170107/113115.zip)
Создание резервной копии НЕ УДАЛОСЬ
Ошибочка!
FishHook
Янв. 7, 2017 11:49:46
Для начала уберите из путей вот это
cjd
Новый том
попробуйте с одним словом латиницей
Во-вторых, разбейте задачу на элементарные составляющие и отлаживайте их по отдельности. Не надо пытаться сразу запустить большой объем кода. У вас создается каталог, потом в него пишется новый файл архива. И тут где-то ошибка! Вы научитесь сначала писать архив в существующий каталог. Получилось? Идем дальше, учимся создавать каталоги. Получилось? Идем дальше, объединяем эти две операции.
cjd
Янв. 7, 2017 11:58:01
FishHook
попробуйте с одним словом латиницей
Это как так? Разве это возможно? Я на линуксе совсем недавно, но я знаю, что на шиндовс этого сделать нельзя. Или я чего-то не понимаю?
FishHook
Янв. 7, 2017 11:59:57
Чего?
Вам нужно убрать кириллицу из путей и не использовать пробелы, чего тут невозможного?
cjd
Янв. 7, 2017 12:07:53
То есть писать Novii_tom ?
Либо я слишком тупой, либо вы непонятно говорите.
FishHook
Янв. 7, 2017 12:10:13
да, писать Novii_tom.