【问题标题】:How to get 'My Document' folder path by python?如何通过python获取“我的文档”文件夹路径?
【发布时间】:2014-11-18 06:12:04
【问题描述】:

我的脚本与“我的文档”文件夹合并,但我无法在 Windows 7 上获取它的路径。

第一:

我关注了this question.

os.path.expanduser(path)

但是,正如评论所说

在 Windows 上,调用 os.path.expanduser('~/filename') 会产生类似于 'C:\Documents and Settings\/filename' 的结果,这不是用户“我的文档”文件夹中某些内容的路径。

如果用户移动他的“我的文档”文件夹,这将不起作用。

那么

我找到了另一个解决方案here
它似乎适用于 mypictures 文件夹,但如果我尝试 mydocuments 我会收到如下错误:

>>> print(shell.SHGetFolderPath(0, shellcon.CSIDL_MYDOCUMENTS, None, 0))
Traceback (most recent call last):
  File "<pyshell#3>", line 1, in <module>
    print(shell.SHGetFolderPath(0, shellcon.CSIDL_MYDOCUMENTS, None, 0))
pywintypes.com_error: (-2147024809, 'argument error', None, None)

我对此感到困惑,所以我在这里搜索了另一个 question
看来我们应该在windows7中使用SHGetKnownFolderPath函数。
但是在win32com.shell中找不到这个函数。

终于

我找到了一种可行的方法,可以在下面回答,但我现在有更多问题。

【问题讨论】:

    标签: python pywin32


    【解决方案1】:

    现在我发现我应该使用参数shellcon.CSIDL_PERSONAL 而不是shellcon.CSIDL_MYDOCUMENTS
    但我不知道为什么。

    在 MSDN 上,据说该功能已被弃用,但它仍在 pywin32 中,我找不到替代功能 SHGetKnownFolderPath

    此外,CSIDL 也被替换为 KNOWNFOLDERID 值,并且在CSIDL 文档中CSIDL_PERSONAL 等于CSIDL_MYDOCUMENTS

    那么现在推荐的获取windows特殊文件夹的方法是什么?

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-11-03
      • 1970-01-01
      • 2019-12-17
      • 2020-12-19
      • 1970-01-01
      • 2017-04-14
      相关资源
      最近更新 更多