gpt4 book ai didi

python - 如何从 32 位 Python 访问 64 位 Windows 环境变量?

转载 作者:可可西里 更新时间:2023-11-01 09:19:06 26 4
gpt4 key购买 nike

是否有一些相当简单的方法从 32 位 Python 读取 64 位 Windows 环境变量?

例如默认值为

os.environ['ProgramFiles']

在 32 位环境中是 r'C:\Program Files'(这就是 os.environ 在 32 位 Python 中报告的内容),但在 64 位环境中是 r'C:\Program Files (x86)'环境。

我想从 32 位 Python 获取 64 位版本的变量。怎么办?

============================================= ====================

问题的这一部分是对那些迫不及待想说“你为什么要这样做?”“这不是这样做是个好主意”,而不是回答问题。

我有充分的理由提出要求。我正在使用 Python 来自动设置 Windows 框。它们可能运行 32 位或 64 位 Windows,因此只有 32 位 Python 可以确保在两者上运行。但是 64 位变量的值很重要,因为它们决定了某些文件应该去哪里。

并且 - 在您说“如果是 32 位 Windows 则将内容放入“C:\这些环境变量的存在是有原因的。虽然这些位置在 99% 的情况下可能是正确的,但用户可能已将这些文件夹移动到其他驱动器号或其他位置。

如果没有人查看它们,让环境变量告诉您​​事情的去向是没有意义的。 :-)

最佳答案

如果您是在 64 位计算机上运行的 32 位程序,则可以使用 ProgramW6432 环境变量获取 Program Files 的真实(64 位)路径位版本的 Windows:

ProgramFiles=C:\Program Files (x86)
ProgramFiles(x86)=C:\Program Files (x86)
ProgramW6432=C:\Program Files

.. 在 32 位操作系统下运行时不会设置变量。

所以在 python 中,是这样的:

path = os.environ['ProgramW6432'] if 'ProgramW6432' in os.environ else os.environ['ProgramFiles']

.. 应该如您所愿地工作。

关于python - 如何从 32 位 Python 访问 64 位 Windows 环境变量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49545009/

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