Не понимаю в чём проблема
Всё правильно работает, однако shutil.copy2(a, dir_res) не принимает мои значения и выводит ошибку:
Введите директорию копирования 1:E:\CFG
Traceback (most recent call last):
File "C:\Users\zoodlePC\Desktop\second.py", line 27, in <module>
shutil.copytree(a, dir_res)
File "C:\Users\zoodlePC\AppData\Local\Programs\Python\Python310\lib\shutil.py", line 556, in copytree
return _copytree(entries=entries, src=src, dst=dst, symlinks=symlinks,
File "C:\Users\zoodlePC\AppData\Local\Programs\Python\Python310\lib\shutil.py", line 457, in _copytree
os.makedirs(dst, exist_ok=dirs_exist_ok)
File "C:\Users\zoodlePC\AppData\Local\Programs\Python\Python310\lib\os.py", line 210, in makedirs
head, tail = path.split(name)
File "C:\Users\zoodlePC\AppData\Local\Programs\Python\Python310\lib\ntpath.py", line 185, in split
p = os.fspath(p)
TypeError: expected str, bytes or os.PathLike object, not NoneType
Вот код программы:
import os
import time
import shutil
# получение имени папки:
time_s = time.time() # получение времени с начала эпохи
time_y = time.ctime(time_s) # преобразование секунд в нормальное время
# требуемые замены
time_y = time_y.replace(" ", "_") # замена недопустимых символов
time_y = time_y.replace(":", ".") #
# создание папки
directory = os.getcwd() # получаем местоположение программы
dir_res = os.mkdir(directory + "\\" + time_y) # создание папки с текущим временем
# сбор имён требуемых для архивации файлов
b = 1
i = 1
while i != 0:
a = input("Введите директорию копирования " + str(b) + ":")
b+=1
if a == "Всё":
break
shutil.copy2(a, dir_res)
Ответы (1 шт):
Автор решения: tewboat
→ Ссылка
os.mkdir(directory + "\\" + time_y) возвращает None.
Присвойте переменной значение os.path.join(os.path.abspath(directory), time_y) и все будет работать.