@korjik228337

Почему возникает ошибка «zip error: Nothing to do!», и как добавить список в список с помощью метода extend?

Сейчас обучаюсь по книге 'A byte of python' .Там стоит задача написать и усовершенствовать прогу, которая создает резервные копии файлов. Не могу при помощи метода extend добавить список.Помогитеееееее.
Код:
import os
import time
import sys

running=True
while running:
	#what copy
	cop=input('Введите путь(пути), копию(ии) которого(ых) хотите создать:\n')
	cop.split(',')

	#Where
	where=input('Введите путь, куда вы хотите сохранить резервную копию(ии) файла(ов):\n')

	#all is alright?
	r=input('Введенная выше информация корректна???(допутимы ответы "да", "нет")\n')
	if r=='да':
		running=False

#creating subdirectory 
subdir=where + os.sep + time.strftime('%b%d')
if not os.path.exists(subdir):
	os.mkdir(subdir)
	print('Каталог {0} успешно создан'.format(subdir))

#comment
com=input('Введите комментарий, в протвном случае нажмите Enter:\n')
if len(com)>0:
	#zip-file
	tod=time.strftime('%M')
	zip_name=subdir + os.sep + tod + '_' + com.replace(' ','_') + '.zip'
else:
	#zip-file
	tod=time.strftime('%M')
	zip_name=subdir + os.sep + tod + '.zip'


#zip
zip_command="zip -qr {0} {1}".format(zip_name, ' '.join(cop))


if os.system(zip_command)==0:
	print('Резервная копия успешно создана')
else:
	print('eror, please restart this fucking program')

#add
add=input('Введите дополнительные пути, в противном случае нажмите Enter:\n')
add=add.split(',')
cop.extend(add)

#comment
com=input('Введите комментарий, в протвном случае нажмите Enter:\n')
if len(com)>0:
	#zip-file
	tod=time.strftime('%M')
	zip_name=subdir + os.sep + tod + '_' + com.replace(' ','_') + '.zip'
else:
	#zip-file
	tod=time.strftime('%M')
	zip_name=subdir + os.sep + tod + '.zip'

#zip
zip_command="zip -qr -v {0} {1}".format(zip_name, ' '.join(cop))

if os.zip_command==0:
	print('Резервная копия успешно создана')
else:
	print('eror, please restart this fucking program')

#exit
input('Нажмите Enter, чтобы выйти из программы.')
sys.exit()
  • Вопрос задан
  • 1309 просмотров
Пригласить эксперта
Ответы на вопрос 2
@o5a
Основная ошибка здесь:
cop.split(',')
вместо
cop=cop.split(',')

Из-за этого последующий ' '.join(cop) формирует не строку разных путей, а разбивает путь пробелами.

По поводу extend не особо понятно, что добавлять, не описано, для чего вообще этот дополнительный кусок? Если цель просто повторять создание архивов из разных мест, то не нужно было делать эти манипуляции с cop

Просто общий бесконечный цикл, в конце которого запрос повторения
while True:
    # полностью первый блок кода с запросом данных и архивацией
    # после него
    repeat = input("Повторить (y/n) ?"
    if repeat != "y":
        break


Для работы с zip еще есть модуль zipfile.
Ответ написан
@korjik228337 Автор вопроса
А можно ещё один вопрос? Почему у меня именно при первом запуске консоли пишет :
line 21, in
os.mkdir(subdirectory) # создание каталога
FileNotFoundError: [WinError 3] Системе не удается найти указанный путь: (тут путь)??????????
Ответ написан
Комментировать
Ваш ответ на вопрос

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

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