【问题标题】:platform-independent way to fetch pictures folder?获取图片文件夹的平台无关方式?
【发布时间】:2014-10-28 21:30:45
【问题描述】:

我正在尝试制作一些图像处理软件。在许多流行的操作系统上,都会有一个默认图片文件夹。例如:

Mac: /User/corvid/Pictures/
Ubuntu: /home/corvid/Pictures/
Windows: C:\\user\\corvid\\My Pictures

我知道一种基于this question 使其适用于 Windows 的方法

from win32com.shell import shell, shellcon
print shell.SHGetFolderPath(0, shellcon.CSIDL_MYPICTURES, None, 0)

但是,有没有办法让它更通用一点?有没有办法以独立于平台的方式获取“图片”目录?

【问题讨论】:

  • 您确定它是 Windows 上的“我的图片”,而不仅仅是“图片”吗?
  • 可能是,只是用一个可能的例子来显示差异
  • 在 Vista 和 Windows 7 上的“图片”绝对有效,所以也许 wim 的回答很好。不确定旧版本。
  • 在我的 mac os x yosemite 上是 /Users/ 而不是 /User/

标签: python python-3.x


【解决方案1】:

这适用于 Mac、Linux 和 Windows:

from pathlib import Path
path = Path.home() / "Pictures"

【讨论】:

  • 使用os.path.sep 而不是/
  • 哦,我没注意到 windows 上的“我的”... d'oh!
  • @wim 这可能是问题本身的错误;0 - 在我的 Vista 上它是“图片”,在另一台装有 Windows 7 的机器上也是。
  • 与 Linux 上的其他系统相矛盾,不同语言的名称可能不同(MacOS 和 Windows 在用户界面中进行重命名)。例如在我的机器上,它是/home/useri/Obrazy,其中“Obrazy”是波兰语“图片”的翻译。
【解决方案2】:
from os import environ
import os.path

pictures = os.path.join(environ["USERPROFILE"], "Pictures")

【讨论】:

    猜你喜欢
    • 2013-10-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-08-01
    • 1970-01-01
    • 1970-01-01
    • 2010-10-14
    相关资源
    最近更新 更多