溫馨提示×

python外部命令如何處理子進程的輸入輸出

小樊
117
2024-12-12 00:58:38
欄目: 編程語言

在Python中,可以使用subprocess模塊來處理外部命令及其子進程的輸入輸出

import subprocess

# 創建一個子進程,運行外部命令(這里是運行echo命令)
# 通過stdin, stdout, stderr參數來捕獲子進程的輸入輸出
process = subprocess.Popen(["echo", "Hello from the child process!"],
                           stdin=subprocess.PIPE,
                           stdout=subprocess.PIPE,
                           stderr=subprocess.PIPE)

# 使用communicate()方法來等待子進程完成,并獲取其輸出
stdout_data, stderr_data = process.communicate()

# 將輸出從字節轉換為字符串
stdout_str = stdout_data.decode("utf-8")
stderr_str = stderr_data.decode("utf-8")

print("子進程輸出:", stdout_str)
print("子進程錯誤:", stderr_str)

# 獲取子進程的返回碼
return_code = process.returncode
print("子進程返回碼:", return_code)

在這個示例中,我們使用subprocess.Popen創建了一個子進程來運行echo命令。通過設置stdin、stdoutstderr參數為subprocess.PIPE,我們可以捕獲子進程的輸入輸出。然后,我們使用communicate()方法等待子進程完成,并獲取其輸出。最后,我們將輸出從字節轉換為字符串,并打印出來。

注意:在實際應用中,你可能需要根據子進程的需求來調整stdin、stdoutstderr參數的值。例如,你可以將stdin設置為None以便讓子進程從終端接收輸入,或者將stdoutstderr設置為subprocess.DEVNULL以便忽略子進程的輸出。

0
亚洲午夜精品一区二区_中文无码日韩欧免_久久香蕉精品视频_欧美主播一区二区三区美女