在Python中查找系统文件夹位置

我想用Python 3.1找出系统文件夹的位置。 例如“My Documents”=“C:\ Documents and Settings \ User \ My Documents”,“Program Files”=“C:\ Program Files”等。

我发现做一个稍微不同的方式 。 这种方式将给你各种系统文件夹的位置,并使用真正的单词,而不是CLSID。

import win32com.client objShell = win32com.client.Dispatch("WScript.Shell") allUserDocs = objShell.SpecialFolders("AllUsersDesktop") print allUserDocs 

其他可用文件夹:AllUsersDesktop,AllUsersStartMenu,AllUsersPrograms,AllUsersStartup,桌面,收藏夹,字体,MyDocuments,NetHood,PrintHood,最近,SendTo,StartMenu,启动和模板

在Windows 7中,我可以使用以下环境变量来访问我需要的文件夹:

 >>> import os >>> os.environ['USERPROFILE'] 'C:\\Users\\digginc' >>> os.environ['PROGRAMFILES'] 'C:\\Program Files' 

要获得“我的文档”文件夹,您可以使用:

 from win32com.shell import shell df = shell.SHGetDesktopFolder() pidl = df.ParseDisplayName(0, None, "::{450d8fba-ad25-11d0-98a8-0800361b1103}")[1] mydocs = shell.SHGetPathFromIDList(pidl) print mydocs 

从这里 。

我不确定什么是“Program Files”的等效魔法咒语,但是这应该足以让你开始。

从Windows Vista开始的Windows API调用是SHGetKnownFolderPath 。 有一个麻省理工学院许可包装(使用ctypes,所以没有依赖pywin32) 在这里 。

 >>> from knownpaths import * >>> get_path(FOLDERID.ProgramFilesX86) u'C:\\Program Files (x86)'