В продолжение вопроса
Не работает код по созданию резервной копии в Пайтон по книге «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)
используются две пары кавычек, т.к. присутствует пробел в названии папки, что в дальнейшем вытекает в ошибку синтаксиса
Благодарю за внимательное отношение на форуме к вопросам начинающих, даже если они не совсем корректны и слишком просты.