使用Python打开cmd,获取结果并相应地继续

使用Python打开cmd,获取结果并相应地继续,python,cmd,subprocess,pipe,stdin,Python,Cmd,Subprocess,Pipe,Stdin,我需要一个Python可以调用cmd进程并运行命令的代码 我必须找到该命令是否成功,并在python代码中进行相应的处理 我在stackoverflow上的代码只处理打开cmd和运行命令 我不想使用runas,因为它需要管理员权限,这是我以后在程序中加入的,不应该在这里使用。(只有在不调用UAC且不需要管理员权限的情况下才建议使用。) 我发现唯一一个没有管理员权限运行cmd的代码是: command = "cmd.exe" proc = subprocess.Popen(command, st

我需要一个Python可以调用
cmd
进程并运行命令的代码

我必须找到该命令是否成功,并在python代码中进行相应的处理

我在stackoverflow上的代码只处理打开cmd和运行命令

我不想使用
runas
,因为它需要管理员权限,这是我以后在程序中加入的,不应该在这里使用。(只有在不调用UAC且不需要管理员权限的情况下才建议使用。)

我发现唯一一个没有管理员权限运行
cmd
的代码是:

command = "cmd.exe" 
proc = subprocess.Popen(command, stdin = subprocess.PIPE, stdout = subprocess.PIPE)

我不知道
proc
变量是否可用于检测返回值或其他任何东西,请相应地指导我,并尽可能建议更好的代码。

是的,
Popen
的结果可用于检测返回值和输出,但使用
子流程更容易。从Python运行

您可以询问
结果
(同样,从):


是的,
Popen
的结果可以用来检测返回值和输出,但是使用
子流程更容易。运行
。从Python:

您可以询问
结果
(同样,从):

subprocess.run(["ls", "-l"])  # doesn't capture output

result = subprocess.run(["ls", "-l", "/dev/null"], stdout=subprocess.PIPE) # returns a CompletedProcess
result.returncode # process return code
result.stdout # std out from the process