@Artem441

Не работает код по созданию резервной копии в Пайтон по книге «A byte of Python» вопрос №2?

В продолжение вопроса Не работает код по созданию резервной копии в Пайтон по книге «A byte of Python»?
Изучаю дальше книгу "A byte of python" задание доработать ранее рассмотренный код, теперь он выглядит так (добавилось создание папки с текущей датой для резервных копий):
import os
import time


# 1. Файлы и каталоги, которые необходимо скопировать, собираются в список
source= ['C:\\Инглишточка']
# заметьте, что для имен, содержащих пробелы, необходимо использовать
# двойные кавычки внутри строки

# 2. Резервные копии должны храниться в основном каталоге резерва
target_dir = '"C:\\пайтон\\резервная копия"'

# 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 = "7z a -tzip -ssw -mx1 -r0 {0} {1}".format(target, " ".join(source))

# запускаем создание резервной копии
print (zip_command)

if os.system(zip_command) == 0:
	print(" резервная копия успешно создана в", target)
else:
	print(" создание резервной копии не удалось")


выдает следующую ошибку:
Traceback (most recent call last):
  File "backup_ver2.py", line 22, in <module>
    os.mkdir(today) # создание каталога
OSError: [WinError 123] Синтаксическая ошибка в имени файла, имени папки или метке тома: '"C:\\пайтон\\резервная копия"\\20200518'


предполагаю проблема заключается в этом отрезке:
target_dir = '"C:\\пайтон\\резервная копия"'

# 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)


используются две пары кавычек, т.к. присутствует пробел в названии папки, что в дальнейшем вытекает в ошибку синтаксиса

Благодарю за внимательное отношение на форуме к вопросам начинающих, даже если они не совсем корректны и слишком просты.
  • Вопрос задан
  • 192 просмотра
Решения вопроса 1
kshnkvn
@kshnkvn
yay ✌️ t.me/kshnkvn
Строки, форматирование строк.
У тебя должен получиться путь "C:\\пайтон\\резервная копия\\20200518", а не "C:\\пайтон\\резервная копия"\\20200518
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
alternativshik
@alternativshik
target_dir = '"C:\\пайтон\\резервная копия"'
нафига тут еще кавычки одни?
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы