我希望获取所有主要操作系统上用户文档文件夹的信息:
Windows: C:\Users\<user>\Documents
MacOSX: /Users/<user>/Documents
Linux: /home/<user>/Documents
此外,如果用户手动移动了Documents文件夹位置的位置,也应该处理。
我该怎么做?
我在网上找到了一些处理Windows方案的解决方案。但对其他操作系统没有任何意义。
答案 0 :(得分:2)
类Unix系统不一定有Documents文件夹。这是Mac和Ubuntu采用的Windows惯例。其他Linux可能没有这样的文件夹。但是,几乎每个系统都有一个用户主目录。
在类Unix系统上,您可以使用~
来获取用户的主目录,或者如果您需要将路径作为文本,则可以展开$HOME
。在Windows上,您可以展开环境变量%USERPROFILE%
。这相当于/home/username
或C:\Users\username\
。
答案 1 :(得分:0)
遵循freedesktop.org互操作性方案的Linux发行版具有wrap_content
命令行工具,因此您可以这样做
xdg-user-dir
答案 2 :(得分:0)
Linux 的另一个变体
import os
config_file = os.path.expanduser("~/.config/user-dirs.dirs")
path = open(config_file, 'r').read()
paths = path.splitlines()
home_folder = os.path.expanduser("~")
d = {}
for p in paths:
if "=" in p and "XDG_" in p and not "xxx" in p:
line = p.split("=")
key = line[0].split("_")[1].split("_")[0]
name = line[1].lstrip('"').rstrip('"').replace("$HOME", home_folder)
d[key] = name
for key, value in d.items() :
print (f"{key}: {value}")