Я хочу скопировать файлы из местоположения в папку на рабочем столе текущего пользователя. Чтобы получить это в 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'
1
Josh De Juan 3 Июл 2019 в 09:59

3 ответа

Лучший ответ

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

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)
-1
Josh De Juan 8 Июл 2019 в 09:16

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

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

>>> import winshell
>>> winshell.desktop()
'C:\\Users\\(username)\\Desktop'
0
anon 3 Июл 2019 в 10:23

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)
0
Evan Bloemer 3 Июл 2019 в 07:27