Найти - Пользователи
Полная версия: Нужна помощь в задаче по книге AByteofPythonRussian-2.01.pdf
Начало » Центр помощи » Нужна помощь в задаче по книге AByteofPythonRussian-2.01.pdf
1
danic
Делаю первую задачу как написано в книге, но есть проблема, у меня ubuntu а не windows
 import os
import  time
# 1 Файлы и каталоги, которые необходимо скопировать, собираютмя в список
source = ['"/home/dendi/Изображения"','/home/dendi/Музыка' ]
#Заметьте, что для имен , содержащих пробелы, необходимо использовать двойные кавычки внутри строки
# 2 Резервные копии должны хранится в основном каталоге резерва
target_dir = '/home'
# 3 Файлы помещаются в zip архив
# 4 Именем для zip-архива служит текущая дата и время
target =target_dir + os.sep + time.strftime('%Y%m%d%H%M%S') + '.zip'
# 5 Используем команду zip для помещения файлов в zip - архив
zip_command = "zip -qr {0} {1}".format(target,' '.join(sourse))
# Запускаем создание резервной копии
if os.system(zip_command) == 0:
    print('Резервная копия успешно создана в',target)
else:
    print('Создание резервной копии не удалось')

После написания кода появляется ошибка

 Traceback (most recent call last):
  File "/home/dendi/Документы/test/backup_ver1.py", line 18, in <module>
    zip_command = "zip -qr {0} {1}".format(target,' '.join(sourse))
NameError: name 'sourse' is not defined
Process finished with exit code 1
я так понимаю он ругается на zip?
Как правильно написать код?
rami
Разницу между source и sourse вы видите? В строках кода:
 source = ['"/home/dendi/Изображения"','/home/dendi/Музыка' ]
и
 zip_command = "zip -qr {0} {1}".format(target,' '.join(sourse))
JOHN_16
нет, он ругается на то что такое имя не определено. И Ведь и вправду, не sourse, а sourсe. Вы опечатались.
Rafik
 source = ['"/home/dendi/Изображения"','/home/dendi/Музыка' ]
Насколько вижу в первом элементе списка нет пробелов и двойные кавычки в строке можно было не ставить. Большой беды не будет, если путь в двойных кавычках и без пробелов. Просто при наборе лишние телодвижения.

 target_dir = '/home'
Этот путь не годится, ибо у пользователя нет права на запись в папку /home. Наверное, надо создать прямо в /home какую-либо учебную папку и назначить владельцем учебной папки пользователя. Для отработки примера использовать эту самую учебную папку. Если есть раздел с файлопомойкой, то одну из его папок прописать как target_dir.
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