使用上面@JoachimPileborg 的链接:freedesktop.org/wiki/Software/xdg-user-dirs,我将这段代码放在一起,如果可以确定它应该安全地给出用户桌面的路径:
import os, re
def get_desktop_path():
D_paths = list()
try:
fs = open(os.sep.join((os.path.expanduser("~"), ".config", "user-dirs.dirs")),'r')
data = fs.read()
fs.close()
except:
data = ""
D_paths = re.findall(r'XDG_DESKTOP_DIR=\"([^\"]*)', data)
if len(D_paths) == 1:
D_path = D_paths[0]
D_path = re.sub(r'\$HOME', os.path.expanduser("~"), D_path)
else:
D_path = os.sep.join((os.path.expanduser("~"), 'Desktop'))
if os.path.isdir(D_path):
return D_path
else:
return None
它只是尝试解析应该指定用户目录的文件,如果失败,它会尝试使用英语默认值。最后它验证目录是否存在。我承认正则表达式可能会得到改进,但我认为应该没问题。