您当前的位置:首页 > 计算机 > 编程开发 > Python

python --获取桌面路径

时间:08-13来源:作者:点击数:
城东书院 www.cdsy.xyz

python --获取桌面路径

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')

6. win32另一种方法

import win32com.client
shell = win32com.client.Dispatch("WScript.Shell")
print(shell.SpecialFolders("Desktop"))
城东书院 www.cdsy.xyz
方便获取更多学习、工作、生活信息请关注本站微信公众号城东书院 微信服务号城东书院 微信订阅号
推荐内容
相关内容
栏目更新
栏目热门
本栏推荐