Python ОС не может получить путь к рабочему столу на одном диске - PullRequest
1 голос
/ 18 марта 2020

Я пытаюсь получить путь пользователя к рабочему столу, используя следующий код:

desktop = os.path.join(os.path.join(os.environ['USERPROFILE']), 'Desktop') 

d = datetime.datetime.today()

newpath = desktop + '\\New_folder' + str(d.day) + '_' + str(d.month) + '_' + str(d.year)
if not os.path.exists(newpath):
    os.makedirs(newpath)

print('Desktop folder created:  ' + newpath)

Для большинства пользователей это работает, но недавно я получил случай с пользователем, у которого есть все на одном диске и их путь: 'C: \ Users \ User1 \ OneDrive - CompanyName \ Desktop'.

Для этих пользователей скрипт завершается ошибкой с таким сообщением:

FileNotFoundError: [WinError 3] The system cannot find the file specified 'C:\\Users\\User1\\Desktop\\New_folder_16_3_2020

Как указать python к их действительному пути к рабочему столу, чтобы я мог затем работать с этой папкой?

1 Ответ

0 голосов
/ 18 марта 2020

Я подозреваю, что причина вашей в том, что убедитесь, что вы обращаетесь к каталогу через OneDrive, вместо того, чтобы сразу идти по пути к рабочему столу от пользователя. Таким образом, вместо этого

C:\\Users\\User1\\Desktop\\New_folder_16_3_2020

было бы что-то вроде этого

C:\\Users\\User1\\Desktop\\OneDrive\\New_folder_16_3_2020

Я бы порекомендовал вам добавить инструкцию try / catch, которая в случае неудачи добавляет / добавляет ключевое слово oneDrive к пути.

...