Python 获取windows桌面路径的5种方法小结


Posted in Python onJuly 15, 2019

这里介绍了5中python获取window桌面路径的方法,获取这个路径有什么用呢?一般是将程序生成的文档输出到桌面便于查看编辑。

前两个方法是通过注册表来获取当前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]

2.win32扩展(需要安装第三方库)

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]

3.也需要win32扩展

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

4.python内置的os库的path模块

这个方法在用户改变了桌面路径后,可能会失效。

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

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

当然这个方法,是获取当前pc的主机名,一般情况下,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桌面路径的5种方法小结就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Python 相关文章推荐
python打开网页和暂停实例
Sep 30 Python
Python通过poll实现异步IO的方法
Jun 04 Python
关于Python中异常(Exception)的汇总
Jan 18 Python
Python通过matplotlib绘制动画简单实例
Dec 13 Python
python+opencv实现动态物体追踪
Jan 09 Python
pandas去重复行并分类汇总的实现方法
Jan 29 Python
Python2.7实现多进程下开发多线程示例
May 31 Python
python多进程下实现日志记录按时间分割
Jul 22 Python
Django命名URL和反向解析URL实现解析
Aug 09 Python
Python安装Bs4的多种方法
Nov 28 Python
python实现简单区块链结构
Apr 25 Python
Pandas-DataFrame知识点汇总
Mar 16 Python
Python识别快递条形码及Tesseract-OCR使用详解
Jul 15 #Python
Python实现Mysql数据统计及numpy统计函数
Jul 15 #Python
通过python改变图片特定区域的颜色详解
Jul 15 #Python
用Python+OpenCV对比图像质量的几种方法
Jul 15 #Python
python3实现斐波那契数列(4种方法)
Jul 15 #Python
为什么从Python 3.6开始字典有序并效率更高
Jul 15 #Python
django settings.py 配置文件及介绍
Jul 15 #Python
You might like
解决GD中文乱码问题
2007/02/14 PHP
PHP5下$_SERVER变量不再受magic_quotes_gpc保护的弥补方法
2012/10/31 PHP
php实现mysql备份恢复分卷处理的方法
2014/12/26 PHP
php基于GD库画五星红旗的方法
2015/02/24 PHP
Laravel 5.5基于内置的Auth模块实现前后台登陆详解
2017/12/21 PHP
js传值 判断
2006/10/26 Javascript
项目实践之javascript技巧
2007/12/06 Javascript
Exitjs获取DataView中图片文件名
2009/11/26 Javascript
jquery模拟按下回车实现代码
2011/09/20 Javascript
原生js实现给指定元素的后面追加内容
2013/04/10 Javascript
jquery 插件实现多行文本框[textarea]自动高度
2015/03/04 Javascript
Javascript中Date类型和Math类型详解
2016/02/27 Javascript
JS快速实现移动端拼图游戏
2016/09/05 Javascript
JavaScript学习笔记整理_简单实现枚举类型,扑克牌应用
2016/09/19 Javascript
谈谈第三方App接入微信登录 解读
2016/12/27 Javascript
实现单层json按照key字母顺序排序的示例
2017/12/06 Javascript
浅谈vue加载优化策略
2019/03/19 Javascript
vue element 生成无线级左侧菜单的实现代码
2019/08/21 Javascript
Vue项目环境搭建详细总结
2019/09/26 Javascript
VUE解决 v-html不能触发点击事件的问题
2019/10/28 Javascript
django简单的前后端分离的数据传输实例 axios
2020/05/18 Javascript
Js和VUE实现跑马灯效果
2020/05/25 Javascript
python 输出一个两行字符的变量
2009/02/05 Python
python如何在终端里面显示一张图片
2016/08/17 Python
Python获取文件所在目录和文件名的方法
2017/01/12 Python
pandas多级分组实现排序的方法
2018/04/20 Python
python微信公众号之关注公众号自动回复
2018/10/25 Python
python 计算数据偏差和峰度的方法
2019/06/29 Python
浅谈pymysql查询语句中带有in时传递参数的问题
2020/06/05 Python
通俗讲解python 装饰器
2020/09/07 Python
试用期转正鉴定评语
2014/01/27 职场文书
道德大讲堂实施方案
2014/05/14 职场文书
学前教育专业求职信
2014/09/02 职场文书
党的群众路线教育实践活动个人对照检查剖析材料
2014/09/23 职场文书
制定企业培训计划的五大要点!
2019/07/10 职场文书
JavaGUI模仿QQ聊天功能完整版
2021/07/04 Java/Android