gpt4 book ai didi

python - python 如何以跨平台方式存储桌面应用程序数据?

转载 作者:IT老高 更新时间:2023-10-28 21:37:42 26 4
gpt4 key购买 nike

我有一个需要存储用户数据的 python 桌面应用程序。在 Windows 上,这通常在 %USERPROFILE%\Application Data\AppName\ 中,在 OSX 上通常是 ~/Library/Application Support/AppName/,在其他 *nixes 中通常是 ~/.appname/.

标准库中存在一个函数,os.path.expanduser,它可以让我获得用户的主目录,但我知道,至少在 Windows 上,“应用程序数据”被本地化为用户的语言。对于 OSX 来说可能也是如此。

获取此位置的正确方法是什么?

更新:一些进一步的研究表明,在 OSX 上获得这个的正确方法是使用函数 NSSearchPathDirectory,但那是 Cocoa,所以这意味着调用 PyObjC 桥...

最佳答案

好吧,我讨厌自己回答我的问题,但似乎没有人知道。我将答案留给后人。

APPNAME = "MyApp"
import sys
from os import path, environ
if sys.platform == 'darwin':
from AppKit import NSSearchPathForDirectoriesInDomains
# http://developer.apple.com/DOCUMENTATION/Cocoa/Reference/Foundation/Miscellaneous/Foundation_Functions/Reference/reference.html#//apple_ref/c/func/NSSearchPathForDirectoriesInDomains
# NSApplicationSupportDirectory = 14
# NSUserDomainMask = 1
# True for expanding the tilde into a fully qualified path
appdata = path.join(NSSearchPathForDirectoriesInDomains(14, 1, True)[0], APPNAME)
elif sys.platform == 'win32':
appdata = path.join(environ['APPDATA'], APPNAME)
else:
appdata = path.expanduser(path.join("~", "." + APPNAME))

关于python - python 如何以跨平台方式存储桌面应用程序数据?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1084697/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com