首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Python直接在Windows上获取桌面路径

Python直接在Windows上获取桌面路径
EN

Stack Overflow用户
提问于 2022-10-09 16:38:06
回答 1查看 86关注 0票数 2

我看到了找到用户路径的答案,然后将其与desktop连接起来,如:

代码语言:javascript
复制
desktop = os.path.expanduser("~/Desktop")

代码语言:javascript
复制
desktop = os.path.join(os.path.join(os.environ['USERPROFILE']), 'Desktop') 

但是,当设备具有非默认扩展时,它无法工作:

代码语言:javascript
复制
C:\\Users\\NAME\\OneDrive\\Desktop

或非英文分机:

代码语言:javascript
复制
C:\\Users\\NAME\\OneDrive\\桌面

最后我作为紧急反应做了这件事:

代码语言:javascript
复制
possible_desktop_ext = ['Desktop', 'OneDrive\\Desktop', 'OneDrive\\桌面']

我肯定能看到这个列表在未来呈指数增长,而且我不喜欢每次我发现一个新的扩展时这样做的感觉。

那么,检索桌面路径最可靠的方法是什么呢?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-10-09 17:18:59

这是改编自https://stackoverflow.com/a/626927/5987,我敦促你去它,并给予它应有的认可。

代码语言:javascript
复制
import ctypes
from ctypes import wintypes, windll

CSIDL_DESKTOP = 0

_SHGetFolderPath = windll.shell32.SHGetFolderPathW
_SHGetFolderPath.argtypes = [wintypes.HWND,
                            ctypes.c_int,
                            wintypes.HANDLE,
                            wintypes.DWORD, wintypes.LPCWSTR]

path_buf = ctypes.create_unicode_buffer(wintypes.MAX_PATH)
result = _SHGetFolderPath(0, CSIDL_DESKTOP, 0, 0, path_buf)
print(path_buf.value)
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/74006573

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档