平台桌面目录路径?

有没有办法在Python中以跨平台的方式获取桌面目录路径 ,理想情况下只使用标准模块?

我目前的Mac OS X + Windows解决方案是使用sys.platform检查哪个系统正在运行Python,然后执行以下操作:

  • 可以使用os.path.join(os.path.expanduser('~'), 'Desktop')处理Mac OS X.
  • Windows可以使用非标准模块win32com或ctypes相关模块winpaths; 有没有一个标准的选择?
  • 那么Linux呢?
  • 我会很高兴能在Mac OS X,Windows和Linux上运行的解决方案。


    下面的窗口,用户家里%HOMEPATH%这是Linux和Mac相当于~ 。 在这之下,就像在Mac上一样有一个文件夹Desktop 。 Python在Windows上自动将~转换为%HOMEPATH%,所以你的Mac命令可以在Mac和Windows上使用。

    在Linux上,这有点棘手。 首先,要明白你运行的Linux机器可能没有桌面,所以没有用户桌面文件夹。 如果你有窗口管理器,它可能会或可能不遵循~Desktop范例。 窗口管理器上的维基百科条目更为详细,其中包括一些子链接中更受欢迎的X窗口管理器之间的比较。

    你最好的选择是退后一步,问自己为什么我想要/需要用户的桌面文件夹? 是否在安装过程中创建快捷方式? 使用安装编写器实用程序(如nsis)处理这些详细信息可能会更好。 如果是文件存储,即使是暂时的,你也可能想重新考虑你的设计。 或者你正在寻找一些东西,在这种情况下,文件系统搜索可能是要走的路,而不是一个脆弱的单个文件夹检查。

    像大多数事情一样,这一切都取决于你想完成什么。

    正如EOL在他的评论中指出的那样,Windows比第一次出现时稍微复杂一些。 他在Windows桌面文件夹上的更完整文章的链接提供了有关桌面文件夹本地化的更多详细信息。 这对国际应用程序的构建者来说非常重要,要么使用内置于其工具集中的自动本地化,要么避免使用它的东西。


    我使用了以下内容:

    import os
    desktop_file = os.path.expanduser("~/Desktop/myfile.txt")
    

    在Unix和Windows上,返回带有用户主目录替换的〜或〜用户的初始组件的参数。

    参考:os.path.expanduser

    链接地址: http://www.djcxy.com/p/54549.html

    上一篇: platform Desktop directory path?

    下一篇: C++ cross platform build automation