Уведомления

Группа в Telegram: @pythonsu

#1 Март 14, 2019 12:40:37

danic
Зарегистрирован: 2019-03-14
Сообщения: 2
Репутация: +  0  -
Профиль   Отправить e-mail  

Нужна помощь в задаче по книге AByteofPythonRussian-2.01.pdf

Делаю первую задачу как написано в книге, но есть проблема, у меня 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?
Как правильно написать код?

Офлайн

#2 Март 14, 2019 13:18:40

rami
Зарегистрирован: 2018-01-08
Сообщения: 281
Репутация: +  72  -
Профиль   Отправить e-mail  

Нужна помощь в задаче по книге AByteofPythonRussian-2.01.pdf

Разницу между source и sourse вы видите? В строках кода:

 source = ['"/home/dendi/Изображения"','/home/dendi/Музыка' ]
и
 zip_command = "zip -qr {0} {1}".format(target,' '.join(sourse))

Отредактировано rami (Март 14, 2019 13:19:59)

Офлайн

#3 Март 14, 2019 13:19:58

JOHN_16
От: Россия, Петропавловск-Камчатск
Зарегистрирован: 2010-03-22
Сообщения: 3292
Репутация: +  221  -
Профиль   Отправить e-mail  

Нужна помощь в задаче по книге AByteofPythonRussian-2.01.pdf

нет, он ругается на то что такое имя не определено. И Ведь и вправду, не sourse, а sourсe. Вы опечатались.



_________________________________________________________________________________
полезный блог о python john16blog.blogspot.com

Офлайн

#4 Март 14, 2019 17:37:29

Rafik
Зарегистрирован: 2018-09-04
Сообщения: 231
Репутация: +  27  -
Профиль   Отправить e-mail  

Нужна помощь в задаче по книге AByteofPythonRussian-2.01.pdf

 source = ['"/home/dendi/Изображения"','/home/dendi/Музыка' ]
Насколько вижу в первом элементе списка нет пробелов и двойные кавычки в строке можно было не ставить. Большой беды не будет, если путь в двойных кавычках и без пробелов. Просто при наборе лишние телодвижения.

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

Отредактировано Rafik (Март 14, 2019 17:55:48)

Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version