Python 获取 Windows 桌面路径的 5 种方法详解

Evan
Evan
发布时间:2026-10-13| 6人浏览过
原创

本文总结了在 Python 中获取 Windows 桌面绝对路径的五种常用方法。包括使用内置 winreg 模块读取注册表、利用 win32api 扩展库、通过 win32com.shell 获取特殊文件夹位置、使用 os.path.join 拼接用户目录,以及基于 socket 主机名的路径推导。文章对比了各方法的优缺点、依赖要求及在用户修改桌面位置或主机名后的兼容性,为开发者提供不同场景下的最佳实践参考。

获取 Windows 桌面路径的方法概述

本文汇总了五种在 Python 中获取 Windows 系统桌面路径的方法。明确获取该路径的主要用途在于,当程序生成文档或日志文件时,将其直接输出至桌面,便于用户快速查看和编辑。

前两种方法均通过读取 Windows 注册表来获取当前桌面的绝对路径。其中,第一种方法因无需安装任何第三方扩展库而更为推荐;其他方法供读者了解备用。

基于注册表的获取方法

1. 使用内置的 winreg 模块(推荐方案)


import _winreg
def get_desktop():
  key = _winreg.OpenKey(_winreg.HKEY_CURRENT_USER,r'Software\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders')
  return _winreg.QueryValueEx(key, "Desktop")[0]

使用 win32api 扩展库

2. 使用 win32api 扩展库(需安装第三方库)


import win32api,win32con
def get_desktop():
  key =win32api.RegOpenKey(win32con.HKEY_CURRENT_USER,r'Software\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders',0,win32con.KEY_READ)
  return win32api.RegQueryValueEx(key,'Desktop')[0]

使用 win32com.shell 扩展库

3. 使用 win32com.shell 扩展库(需安装第三方库)


from win32com.shell import shell, shellcon
def GetDesktopPath():
  ilist =shell.SHGetSpecialFolderLocation(0, shellcon.CSIDL_DESKTOP)
  return shell.SHGetPathFromIDList(ilist)

基于 os.path 的路径拼接方法

4. 使用 Python 内置 os 库的 path 模块

需要注意的是,当用户手动更改了桌面的保存位置后,此方法可能无法正确获取路径。


import os
def GetDesktopPath():
  return os.path.join(os.path.expanduser("~"), 'Desktop')

基于 socket 主机名的路径推导

5. 使用 socket 模块(不推荐)

该方法实际上是获取当前计算机的主机名。通常情况下,Windows 系统在首次启动时会生成一个默认主机名,该名称会出现在 C 盘的用户目录下。例如,若主机名为 'jayzhen',则用户目录路径为 C:\Users\jayzhen,此时桌面路径即为 C:\Users\jayzhen\Desktop。然而,如果用户后续修改了主机名,此方法将失效。其代码逻辑与第四种方法相似,但依赖主机名推导路径。


import socket, os
def GetDesktopPath()
 hostname = socket.gethostname()  #socket.getfqdn(socket.gethostname()) 
 basepath = os.path.join("C:\Users\",hostname ) 
 return os.path.join(basepath, 'Desktop')

以上关于 Python 获取 Windows 桌面路径的五种方法小结完毕,希望能为开发者提供有价值的参考。

相关标签:

免责声明:本文内容仅供参考,不代表本站观点。转载或引用请注明出处。

Python 相关产品和应用

全部下载
Selenium

Selenium

4.51.0 · Windows

用于浏览器自动化和 Web 测试的 Python 工具。

scikit-learn

scikit-learn

1.9.1 · Windows

常用 Python 机器学习算法与模型评估工具库。

Black

Black

26.10.1 · Windows

强调一致性的 Python 自动代码格式化工具。

Ruff

Ruff

0.17.1 · macOS

由 Rust 编写的高速 Python 代码检查和格式化工具。

pytest

pytest

9.1.1 · Windows

简洁而强大的 Python 自动化测试框架。

FastAPI

FastAPI

0.146.0 · Windows

高性能 Python API 框架,支持类型提示和自动接口文档。

Flask

Flask

3.1.3 · Windows

轻量灵活的 Python Web 应用框架。

Django

Django

6.1.2 · Windows

成熟的 Python Web 框架,适合构建内容站点和业务系统。

Spyder

Spyder

6.1.7 · Windows

面向科学计算与数据分析的 Python 集成开发环境。

SciPy

SciPy

1.18.1 · Windows

面向科学、工程和技术计算的 Python 算法库。