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

dei*_*aur 5 python linux desktop path

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

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

os.sep.join((os.path.expanduser("~"), "Desktop"))
Run Code Online (Sandbox Code Playgroud)

所以问题是:

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

Bak*_*riu 6

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

import subprocess
subprocess.check_output(['xdg-user-dir', 'DESKTOP'])
Run Code Online (Sandbox Code Playgroud)

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

编辑:

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