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

时间:2018-03-28 22:11:58

标签: python windows x86 64-bit

是否有一些相当直接的方法从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位变量的值很重要,因为它们决定了某些文件的位置。

并且 - 在您说“只是放入”C:\ Program Files“如果它是32位Windows或”C:\ Program Files(x86)“如果它是64位Windows之前,让我指出由于某些原因存在这些环境变量。虽然这些位置可能在99%的时间内都是正确的,但用户可能已将这些文件夹移动到其他驱动器号或其他位置。

如果没有人看到它们,那么让环境变量告诉你事情的进展是没有意义的。 : - )

1 个答案:

答案 0 :(得分:4)

如果您是在64位版本的Windows上运行的32位程序,则可以使用ProgramW6432环境变量来获取Program Files的实际(64位)路径:< / p>

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']

..应该按照你的意愿工作。