溫馨提示×

python外部命令如何處理輸入輸出重定向

小樊
130
2024-12-12 02:28:43
欄目: 編程語言

在Python中,你可以使用subprocess模塊來處理外部命令的輸入輸出重定向。subprocess模塊提供了Popen類,可以用來執行外部命令并與其進行交互。以下是一個簡單的示例,展示了如何使用subprocess.Popen來處理輸入輸出重定向:

import subprocess

# 定義一個外部命令,例如:ls -l
command = "ls"
args = ["-l"]

# 使用subprocess.Popen執行外部命令,并設置stdin、stdout和stderr
process = subprocess.Popen(command, args, stdin=subprocess.PIPE, stdout=subprocess.PIPE, stderr=subprocess.PIPE)

# 向外部命令的stdin發送數據,例如:echo "Hello, World!"
input_data = "Hello, World!\n"
process.stdin.write(input_data.encode())
process.stdin.flush()

# 從外部命令的stdout讀取數據
output_data, _ = process.communicate()

# 解碼從外部命令接收到的數據
decoded_output = output_data.decode()

print("Output:", decoded_output)

在這個示例中,我們執行了一個ls -l命令,并通過stdin向其發送了一個字符串"Hello, World!"。然后,我們從stdout讀取了命令的輸出,并將其解碼為Python字符串。

注意,我們在發送數據之前調用了process.stdin.flush(),以確保數據被立即發送到外部命令,而不是等待緩沖區填滿。

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