使用subprocess.Popen
可以執行外部命令,并獲取它的輸出。當輸出較大時,可以使用communicate()
方法來獲取輸出,并避免出現緩沖區溢出的情況。
以下是一個示例代碼:
import subprocess
# 執行外部命令
process = subprocess.Popen(['ls', '-l'], stdout=subprocess.PIPE)
# 讀取輸出
output, error = process.communicate()
# 輸出結果
print(output.decode('utf-8'))
在以上代碼中,通過subprocess.Popen
執行外部命令ls -l
,并將輸出存儲在output
變量中。最后通過decode('utf-8')
方法將輸出轉換為字符串并打印出來。
需要注意的是,communicate()
方法會等待命令執行完畢并返回輸出結果,因此在輸出較大時可能會阻塞程序。如果需要實時獲取輸出,可以使用stdout.readline()
方法來逐行讀取輸出。