首頁  >  文章  >  後端開發  >  Python 2.x 中如何使用subprocess模組執行外部指令

Python 2.x 中如何使用subprocess模組執行外部指令

王林
王林原創
2023-07-29 18:36:30902瀏覽

Python的subprocess模組提供了一種在Python程式中執行外部命令的方式。它允許我們與作業系統的命令列交互,並透過程式碼來控制和引用外部程式的輸出和行為。本文將介紹如何使用subprocess模組執行外部命令,並提供一些實用的程式碼範例。

  1. 執行簡單的外部命令

要執行簡單的外部命令,可以使用subprocess模組的subprocess.call()函數。這個函數在執行完外部指令後會回傳指令的退出狀態碼。

import subprocess

# 执行一个简单的外部命令:获取当前目录下的文件列表
subprocess.call('ls')
  1. 取得外部指令的輸出

如果想要取得外部指令的輸出結果,可以使用subprocess.check_output()函數。這個函數會執行外部命令,並將其輸出作為函數的回傳值。

import subprocess

# 执行外部命令:获取当前目录下的文件列表
output = subprocess.check_output('ls')
print(output)
  1. 控制外部命令的輸入和輸出

有時候,我們需要將輸入資料傳遞給外部命令,或從外部命令中獲取即時的輸出。 subprocess模組提供了Popen類別來滿足這些需求。

import subprocess

# 执行外部命令:使用cat命令将输入数据输出到标准输出
input_data = b'Hello, World!'
process = subprocess.Popen(['cat'], stdin=subprocess.PIPE, stdout=subprocess.PIPE)
output, error = process.communicate(input=input_data)
print(output)
  1. 執行命令列參數包含空格的外部命令

當外部命令的參數包含空格時,需要將整個命令作為一個字串傳遞給 subprocess.call()subprocess.check_output()函數。

import subprocess

# 执行外部命令:计算一个数的平方
number = 10
subprocess.call('python -c "print({}**2)"'.format(number), shell=True)
  1. 增加錯誤處理

在執行外部命令時,可能會出現一些錯誤,例如命令不存在或命令執行失敗。我們可以使用try-except語句來處理這些錯誤。

import subprocess

# 执行外部命令:命令不存在
try:
    subprocess.check_output('nonexistent_command')
except subprocess.CalledProcessError as e:
    print('Command execution failed:', e)

這些範例程式碼展示如何使用subprocess模組執行外部命令。使用subprocess模組可以使我們能夠輕鬆地與命令列交互,並靈活控制外部程式的行為。無論是簡單的命令還是複雜的任務,subprocess模組都可以幫助我們實現。

以上是Python 2.x 中如何使用subprocess模組執行外部指令的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn