Shutil.copytree ----> WindowsError: [Ошибка 3] Системе не удается найти указанный путь: - PullRequest
1 голос
/ 12 марта 2020

Я пытаюсь извлечь содержимое из источника и переместить в папку назначения.

folder1 = 2018
folder2 = 8    
folder3 = 3
    source = os.path.join("C:\\","Pizza","Sammy","Logs", "Archive", "DataLog_Private" ,str(folder1),"0" + str(folder2),"0" + str(folder3))

    destination = os.path.join("C:\\","Users", "alex", "Desktop", "logPull" , "DataLog_Private" ,str(folder1),"0" + str(folder2),"0" + str(folder3))

shutil.copytree(source,destination)

Я также пробовал этот путь.

#source = r"C://Pizza//Sammy//Logs//Archive//DataLog_Private//%s//%s//%s//" %(str(folder1),"0" + str(folder2),"0" + str(folder3))
#destination = r"C://Users//alex//Desktop//logPull//DataLog_Private//%s//%s//%s//" %(str(folder1),"0" + str(folder2),"0" + str(folder3))

Я получаю эту ошибку для обоих пути, при использовании copytree

WindowsError: [Error 3] The system cannot find the path specified'C:\\Pizza\\Sammy\\Logs\\Archive\\DataLog_Private\\2018\\08\\03/*.*'

Пожалуйста, помогите.

1 Ответ

1 голос
/ 12 марта 2020

Следующее работает для меня в Python 3.6, обратите внимание на использование переменных среды.

import os
import shutil

folder1 = 2018
folder2 = 8    
folder3 = 3

drive = os.path.join(os.getenv("HOMEDRIVE"), os.sep)
date_path = os.path.join(f"{folder1}", f"{folder2:02}", f"{folder3:02}")

source = os.path.join(
    drive, "Pizza","Sammy", "Logs", "Archive", "DataLog_Private", date_path
)
destination = os.path.join(
    os.getenv("USERPROFILE"), "Desktop", "logPull", "DataLog_Private", date_path
)

shutil.copytree(source, destination)

HOMEDRIVE должно указывать на диск, на котором установлен Windows. Список, если переменные окружения по умолчанию здесь

Обозначение f"{expression}" называется f-строкой. Это было введено в Python 3.6, , вот PEP . Добавление :02 в скобках дает число, начинающее 0.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...