在python中(临时)重新定义windows特殊位置

在python中(临时)重新定义windows特殊位置,python,Python,经过大量挖掘,我发现: XDG_DATA_HOME == CSIDL_PERSONAL,CSIDL_LOCAL_APPDATA XDG_CONFIG_HOME = CSIDL_APPDATA, CSIDL_LOCAL_APPDATA 对于Windows。这通过以下方式显示: print(GLib.get_user_data_dir()) print(GLib.get_user_config_dir()) &将一些gtk-3.0config放入C:\Users\\\… 因为我一直在移动一

经过大量挖掘,我发现:

XDG_DATA_HOME == CSIDL_PERSONAL,CSIDL_LOCAL_APPDATA   
XDG_CONFIG_HOME = CSIDL_APPDATA, CSIDL_LOCAL_APPDATA
对于Windows。这通过以下方式显示:

print(GLib.get_user_data_dir())
print(GLib.get_user_config_dir())
&将一些
gtk-3.0
config放入
C:\Users\\\…

因为我一直在移动一些二进制文件(对于冻结的应用程序),所以我需要确保
GTK
可以找到一些关键目录(
etc
share
)。 似乎我需要临时设置这些变量,但是
os.environ['…]=
不起作用


有什么想法吗?最糟糕的情况是,我在
根目录中有
etc/
share/
,但我一直试图将其清除混乱。

这些值存储在Windows注册表中,因此您应该能够使用
\u winreg
(或Python 3中的
winreg
)模块更改它们(假设您有足够的权限)。我想它们在HKEY\U CURRENT\U USER\Software\Microsoft\Windows\CurrentVersion\Explorer\Shell文件夹中
。谢谢您的回复。我不想永久地重新定义它们,我想临时设置它们。在NIX中,我可以在每个应用程序的基础上重新定义/扩展XDG_uu(os.environ['XDG_DATA_HOME']+='/some/arbitary/path)。现在Windows不使用XDG,但GTK/pyGObject的等效变量是CSIDL变量。我希望在本地重新定义它们,因为我的应用程序Windows具有“运行方式”,您可以使用不同的凭据(例如,作为另一个用户)执行某些操作。也许您可以设置一个单独的用户帐户进行测试,并相应地定义他们的文件夹。或者,您可以通过更改注册表,然后根据工作流自行恢复注册表,从而使修改成为临时性的。这似乎非常危险(是的,这些注册表项是保存特殊位置的注册表项)。如果应用程序崩溃或无法访问注册表以将其设置回原位,则两个非常关键的“变量”将指向一个不存在的位置,从outlook到acrobat的所有内容都将在我的“应用程序”文件夹中重新生成其数据。我希望可以设置一些变量,例如在windows中,扩展搜索目录既简单又方便关于。我还希望gtk提供合适的用户可编辑变量。我想不会。无论如何,谢谢。我仍然认为您可以使用所需的文件夹设置另一个用户帐户,然后使用API在该帐户下执行您想要的过程。