Скопируйте файл на рабочий стол Windows - PullRequest
1 голос
/ 03 июля 2019

Я хочу скопировать файлы из местоположения на рабочий стол текущего пользователя.Чтобы получить это в Windows CMD, это будет %userprofile%\Desktop

Я пытался:

source_path = r"\\cpd-sts\UsersSoftware\Cognos"
dest_path = os.path.join(os.environ["HOMEPATH"], "Desktop")
file_name = "\\Impromptu_User.zip"
shutil.copyfile(source_path + file_name, dest_path + file_name)

И ошибка вывода:

FileNotFoundError: [Errno 2] No such file or directory: '\\Users\\joshua\\Desktop\\Impromptu_User.zip'

Ответы [ 3 ]

0 голосов
/ 03 июля 2019

Вы не указали "диск", такой как C:, в пути назначения.Переменная окружения HOMEPATH в Windows не включает ее.Есть вторая переменная, HOMEDRIVE, которую вам нужно добавить к пути.Опять же, неясно, почему вы не использовали USERPROFILE в первую очередь, так как вы специально упомянули об этом в своем вопросе, и он включал бы путь и .

YouВозможно, вы захотите использовать пакет winshell для этого, поскольку он предоставляет удобные функции для доступа к этим специальным папкам:

>>> import winshell
>>> winshell.desktop()
'C:\\Users\\(username)\\Desktop'
0 голосов
/ 08 июля 2019

Я нашел решение:

source_path = r"\\cpd-sts\UsersSoftware\Cognos"
dest_path = ("C:" + (os.path.join(os.environ["HOMEPATH"], "Desktop")) + "/Cognos")
file_name = "\\Impromptu_User.zip"
shutil.copyfile(source_path + file_name, dest_path + file_name)
0 голосов
/ 03 июля 2019

Unix использует / для разделения файлов, а не \. Попробуйте следующее:

source_path = r"/cpd-sts/UsersSoftware/Cognos"
dest_path = os.path.join(os.environ["HOMEPATH"], "Desktop")
file_name = "/Impromptu_User.zip"
shutil.copyfile(source_path + file_name, dest_path + file_name)
...