A
A
Artem4412020-05-18 19:21:21
Python
Artem441, 2020-05-18 19:21:21

The code for creating a backup copy in Python does not work according to the book "A byte of Python" question number 2?

In continuation of the question The code for creating a backup copy in Python does not work according to the book "A byte of Python"?
I study the book "A byte of python" further, the task is to finalize the previously reviewed code, now it looks like this (creation of a folder with the current date for backups has been added):

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(" создание резервной копии не удалось")


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


I guess the problem is in this section:
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)


two pairs of quotes are used, because there is a space in the folder name, which later results in a syntax error

. Thank you for your attentive attitude to the questions of beginners on the forum, even if they are not quite correct and too simple.

Answer the question

In order to leave comments, you need to log in

2 answer(s)
I
Ivan Yakushenko, 2020-05-18
@Artem441

Strings , string formatting .
You should get a path "C:\\пайтон\\резервная копия\\20200518", not"C:\\пайтон\\резервная копия"\\20200518

A
alternativshik, 2020-05-19
@alternativshik

target_dir = '"C:\\python\\backup"'
Why are there only quotes?

Didn't find what you were looking for?

Ask your question

Ask a Question

731 491 924 answers to any question