python - 如何独立于语言安装(linux)在python中获取用户桌面路径

标签 python linux path desktop

我找到了“如何找到用户桌面的路径”的几个问题和答案,但在我看来,它们都已失效(至少我找到的那些)。原因是如果用户安装的 Linux 不是英语,他或她的桌面很可能位于 ~/Desktop 之外的其他地方。例如。对于瑞典语,我相信它在 ~/Skrivbord 中。谁知道用户决定将他或她的桌面放在哪里?

出于这个原因,以下不会做(或它的任何变体):

os.sep.join((os.path.expanduser("~"), "Desktop"))

所以问题是:

在 linux 上,我如何在 python 中获取用户桌面的真实路径而不预设英文默认目录结构?

最佳答案

您可以调用 xdg-user-dir 实用程序,而不是直接从 ~/.config/user-dirs.dirs 文件读取:

import subprocess
subprocess.check_output(['xdg-user-dir', 'DESKTOP'])

这将适用于任何具有遵循 freedesktop 规范的 DE 的 linux 发行版,这意味着:KDE、Gnome、XFCE 等等(与 OP 已经发布的解决方案完全一样)。

编辑:

更新了 subprocess.check_output,因为参数需要在列表中。 还值得指出的是,您可以将 DESKTOP 更改为例如DOCUMENTS 以获取该文件夹。

关于python - 如何独立于语言安装(linux)在python中获取用户桌面路径,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13741873/

相关文章:

python - 将 jQuery 添加到 Django 管理页面以进行下拉选择以启用/禁用它

python - 来自 Python 的 SSH 隧道自动关闭

python - 如何根据获得的百分比整数值(0-100)打印给定的字符串?

linux - 通过 PIPE 发送 Unix/Linux SIGNAL

html - 使用 HTML5 视频标签插入/播放本地视频路径文件

.net - 指定当前用户文件路径的方法

python - 用python选择大于内存数据分析的框架

linux - Vim - 编辑器和 shell 并存

linux - 在服务器上运行的 Bash 脚本,访问本地文件

node.js - 如何向 jEdit 突击队提供 PATH?