在Unix和Windows上用Python获取User's Documents文件夹

时间:2018-01-14 03:44:34

标签: python

我希望获取所有主要操作系统上用户文档文件夹的信息:

Windows: C:\Users\<user>\Documents
MacOSX: /Users/<user>/Documents
Linux: /home/<user>/Documents

此外,如果用户手动移动了Documents文件夹位置的位置,也应该处理。

我该怎么做?

我在网上找到了一些处理Windows方案的解决方案。但对其他操作系统没有任何意义。

3 个答案:

答案 0 :(得分:2)

类Unix系统不一定有Documents文件夹。这是Mac和Ubuntu采用的Windows惯例。其他Linux可能没有这样的文件夹。但是,几乎每个系统都有一个用户主目录。

在类Unix系统上,您可以使用~来获取用户的主目录,或者如果您需要将路径作为文本,则可以展开$HOME。在Windows上,您可以展开环境变量%USERPROFILE%。这相当于/home/usernameC:\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}")
相关问题