我找到了“如何找到用户桌面的路径”的几个问题和答案,但在我看来,它们都已失效(至少我找到的那些)。原因是如果用户安装的 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/