在Python中,你可以使用subprocess
模塊來調用外部命令
import subprocess
# 使用subprocess.run()執行外部命令
result = subprocess.run(['ls', '-l'], capture_output=True, text=True)
# 打印執行結果
print(result.stdout)
在這個例子中,我們使用subprocess.run()
函數執行了ls -l
命令。capture_output=True
表示我們希望捕獲命令的輸出,而text=True
表示我們希望將輸出作為文本處理(而不是字節)。
subprocess.run()
返回一個subprocess.CompletedProcess
對象,它包含了命令的返回碼、標準輸出和標準錯誤等信息。在這個例子中,我們只打印了標準輸出。
如果你需要執行更復雜的命令,可以使用subprocess.Popen
類。這里有一個例子:
import subprocess
# 創建一個Popen對象
process = subprocess.Popen(['ls', '-l'], stdout=subprocess.PIPE, stderr=subprocess.PIPE, text=True)
# 獲取命令的輸出
stdout, stderr = process.communicate()
# 打印執行結果
print(stdout)
print(stderr)
# 檢查命令是否成功執行
if process.returncode == 0:
print("Command executed successfully.")
else:
print("Command execution failed.")
在這個例子中,我們使用subprocess.Popen
創建了一個子進程來執行ls -l
命令。我們使用stdout
和stderr
參數將命令的輸出重定向到管道,然后使用communicate()
方法獲取輸出。最后,我們檢查命令的返回碼以確定它是否成功執行。