Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/337.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在64位Windows 7系统上使用32位Python os.popen时未返回任何内容_Python_Windows 7_Popen - Fatal编程技术网

在64位Windows 7系统上使用32位Python os.popen时未返回任何内容

在64位Windows 7系统上使用32位Python os.popen时未返回任何内容,python,windows-7,popen,Python,Windows 7,Popen,我尝试使用以下命令在64位Windows 7系统上运行bitlocker加密检查: import os os.popen('C:\Windows\System32\manage-bde.exe -status c:').read() 并且它返回“”(无) 我还尝试使用subprocess.Popen获得相同的结果 这是在64位Windows 7计算机上运行的Python 2.6.6的32位版本。当我使用64位版本的Python时,os.popen和subprocess.popen都可以工作,但

我尝试使用以下命令在64位Windows 7系统上运行bitlocker加密检查:

import os
os.popen('C:\Windows\System32\manage-bde.exe -status c:').read()
并且它返回“”(无)

我还尝试使用subprocess.Popen获得相同的结果

这是在64位Windows 7计算机上运行的Python 2.6.6的32位版本。当我使用64位版本的Python时,os.popen和subprocess.popen都可以工作,但我无法使用64位Python,因为我有许多32位系统需要支持,而py2exe将不支持在64位平台上绑定

有人知道我是否可以让subprocess.Popen或os.Popen使用32位版本的Python在64位Windows系统上工作吗?我不确定我会错在哪里

或者,如果有人知道我如何在不使用manage-bde.exe的情况下检查Windows 7系统上的完整bitlocker加密,我将不胜感激。

manage-bde.exe位于“real”System32目录中。32位应用程序在尝试访问%windir%\SysWOW64时会自动重定向到该应用程序。您可以通过系统本机别名访问它:

import os
os.popen(r'C:\Windows\SysNative\manage-bde.exe -status c:').read()

解析manage-bde的输出有点麻烦。在未来的Windows版本中,输出格式可能很容易更改,脚本可能会中断


更干净、更易于维护的替代方案是使用BitLocker WMI提供程序Win32_EncryptableVolume。具体而言,该方法。

正如前面所指出的,您可以通过Sysnative别名(即%windir%\Sysnative)从“real”System32目录访问64位应用程序。但请注意%windir%\Sysnative仅为32位应用程序定义,对64位应用程序无效:“64位应用程序不能使用Sysnative别名,因为它是虚拟目录而不是真实目录”()。

是否尝试从命令行运行相同的命令?有用吗?对不起。我应该指出这一点。我可以在命令行中使用此命令,没有任何问题。“\”是转义字符。使用前斜杠或双反斜杠instead@Corey戈德伯格:使用双反斜杠或单正斜杠都不会产生任何效果。你必须包含完整的路径吗?您不能让系统路径为您完成工作吗?