0
我試圖編寫一個函數來創建一個循環中的shell管道,它從列表中獲取其命令參數並將最後一個stdout傳遞給新的stdin。 在命令列表中,我想調用Popen對象的通信方法來獲取輸出。python popen pipe in loop
輸出總是空的。我究竟做錯了什麼?
見下面的例子:
lstCmd = ["tasklist", "grep %SESSIONNAME%", "grep %s" % (strAutName)]
lstPopen = [subprocess.Popen(lstCmd[0].split(), stdout=subprocess.PIPE)]
for i in range(len(lstCmd) - 1):
lstPopen.append(subprocess.Popen(lstCmd[i + 1].split(), stdin=lstPopen[i].stdout, stdout=subprocess.PIPE))
lstPopen[i].stdout.close()
strProcessInfo = lstPopen[-1].communicate()[0]
我在Windows環境下的其他UNIX的功能。以下命令適用於我的Windows命令行,並應寫入strProcessInfo:
C:\>tasklist | grep %SESSIONNAME% | grep tasklist
tasklist.exe 18112 Console 1 5.948 K
我剛剛** ** os.environ [「SESSIONNAME」])**取代**控制檯**,但它工作正常。謝謝! –