在Python中,你可以使用subprocess
模塊來執(zhí)行命令行指令并獲取輸出
import subprocess
# 執(zhí)行命令行指令
cmd = "echo 'Hello, World!'"
output = subprocess.check_output(cmd, shell=True, text=True)
# 解析輸出
print("Command output:", output.strip())
在這個例子中,我們執(zhí)行了一個簡單的echo
命令。subprocess.check_output()
函數(shù)用于執(zhí)行命令并獲取標準輸出。shell=True
表示我們在shell環(huán)境中執(zhí)行命令,這在執(zhí)行包含管道、重定向等特性的命令時非常有用。text=True
表示我們希望以文本形式接收輸出,而不是字節(jié)形式。
如果你需要解析更復(fù)雜的輸出,例如從命令行工具獲取結(jié)構(gòu)化數(shù)據(jù),你可以考慮使用subprocess.run()
函數(shù)并結(jié)合適當(dāng)?shù)拿钚泄ぞ摺@?,如果你想要解析一個JSON格式的輸出,你可以這樣做:
import subprocess
import json
# 執(zhí)行命令行指令并捕獲輸出
cmd = "echo '{\"name\":\"John\",\"age\":30,\"city\":\"New York\"}'"
output = subprocess.run(cmd, shell=True, stdout=subprocess.PIPE, text=True, check=True)
# 解析輸出為Python字典
data = json.loads(output.stdout)
print("Parsed data:", data)
在這個例子中,我們執(zhí)行了一個包含JSON數(shù)據(jù)的echo
命令。我們使用subprocess.run()
函數(shù)捕獲標準輸出,然后使用json.loads()
函數(shù)將輸出解析為Python字典。