Найти - Пользователи
Полная версия: Не работает скрипт
Начало » Python для новичков » Не работает скрипт
1 2
cjd
Эта программа которая создаёт резервные
копии всех наших важных файлов.

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
mkdir создает только один уровень каталогов в дереве файловой системы.
То есть так можно
 os.mkdir("existing_dir/new_dir")
а так нет
 os.mkdir("existing_dir/new_dir1/new_dir2")
cjd
Мне нужно, чтобы создавал несколько уровней каталогов в дереве файловой системе.
Как это можно сделать?
FishHook
os.makedirs
cjd
Каталог успешно создан “/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
Для начала уберите из путей вот это
cjd
Новый том
попробуйте с одним словом латиницей

Во-вторых, разбейте задачу на элементарные составляющие и отлаживайте их по отдельности. Не надо пытаться сразу запустить большой объем кода. У вас создается каталог, потом в него пишется новый файл архива. И тут где-то ошибка! Вы научитесь сначала писать архив в существующий каталог. Получилось? Идем дальше, учимся создавать каталоги. Получилось? Идем дальше, объединяем эти две операции.
cjd
FishHook
попробуйте с одним словом латиницей

Это как так? Разве это возможно? Я на линуксе совсем недавно, но я знаю, что на шиндовс этого сделать нельзя. Или я чего-то не понимаю?
FishHook
Чего?
Вам нужно убрать кириллицу из путей и не использовать пробелы, чего тут невозможного?
cjd
То есть писать Novii_tom ?
Либо я слишком тупой, либо вы непонятно говорите.
FishHook
да, писать Novii_tom.
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB