Здесь происходит несколько вещей:
- Вы можете просто использовать косую черту в путях.
- Ваш
src
- это файл test.txt
, ине каталог, поэтому вы не можете выполнить итерацию по нему с помощью os.listdir()
. - Вы также можете объединить два цикла, так как они циклически перебирают один и тот же набор данных.
shutil.copy()
занимаетпуть к файлу в качестве входных данных, а то, что вы передаете, - это имя файла.
Следующий код должен работать, и он также копирует каталоги как:
import shutil
import os
basepath = "C:/Users/SpecificUsername/"
src = "Pictures/"
dest = "Desktop/"
files = os.listdir(os.path.join(basepath, src))
for filename in files:
filepath = os.path.join(basepath, src, filename)
if (os.path.isfile(filepath)):
print("File: " + filename)
shutil.copy(filepath,dest)
else:
print("Dir: " + filename)
shutil.copytree(filepath, os.path.join(dest, filename))
Надеюсь, это поможет!