是否有一些相当直接的方法从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%的时间内都是正确的,但用户可能已将这些文件夹移动到其他驱动器号或其他位置。
如果没有人看到它们,那么让环境变量告诉你事情的进展是没有意义的。 : - )
答案 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']
..应该按照你的意愿工作。