在自動化驅動的世界中,能夠控制系統級別的命令可以節省時間和精力。多功能的語言 Python 提供了多種執行系統命令和運行外部程式的方法。本指南將著重介紹使用 os.system
、os.popen
和 subprocess
模組,以精確控制系統級別的互動。
os.system
命令允許我們直接執行 shell 命令。
import os
exit_code = os.system('echo Hello, World!')
print("Exit code:", exit_code)
輸出
Hello, World!
Exit code: 0
在上面的示例中,我們使用 os.system
呼叫了 echo
命令。退出碼提供了有關操作成功與否的信息。
os.popen
函式允許您在子 shell 中運行命令,並提供了用於讀取或寫入的文件接口。
import os
file = os.popen('echo Hello, World!', 'r')
output = file.read()
print("Output:", output)
file.close()
輸出
Output: Hello, World!
此程式段展示了如何使用 os.popen
將命令的輸出讀取到變數中。
subprocess
模組提供了對命令執行過程的更多控制。使用 subprocess.Popen
,您可以執行命令,檢索其輸出並更靈活地管理進程。
import subprocess
process = subprocess.Popen(['echo', 'Hello, World!'], stdout=subprocess.PIPE)
output, error = process.communicate()
print("Output:", output.decode())
輸出
Output: Hello, World!
在這裡,使用 subprocess.Popen
執行了 echo
命令,並捕獲了輸出以供進一步處理。
subprocess.call
和 subprocess.run
都是方便的運行 shell 命令的方式。以下是演示其使用方法的範例。
# 使用 subprocess.call
exit_code = subprocess.call(['echo', 'Using call'])
print("Exit code using call:", exit_code)
# 使用 subprocess.run
result = subprocess.run(['echo', 'Using run'], stdout=subprocess.PIPE)
print("Output using run:", result.stdout.decode())
輸出
Using call
Exit code using call: 0
Using run
Output using run: Using run
這些方法使命令更容易執行,subprocess.run
在 Python 3.5 及以上版本中提供了更多功能。
執行系統命令並運行外部程式是許多自動化和整合任務的重要部分。Python 通過 os
和 subprocess
等模組的靈活性使這些任務更易於實現並易於維護。您可以根據應用程序的特定需求選擇 os.system
、os.popen
或更強大的 subprocess
方法。通過嘗試這些示例,您將能夠理解其功能並應用於您的項目中。
os.system
和 subprocess
之間的主要區別是什麼?
os.system
較簡單,但提供較少的控制;而 subprocess
提供更多功能和對進程的控制。subprocess.Popen
和 subprocess.run
允許捕獲標準輸出和標準錯誤串流。[Python] 通過各種實例深入理解位元運算符 |
---|
[Python] 通過各種實例深入理解關係運算符 |
[Python] 解決 'zsh: command not found: python' 錯誤的方法 |
[Python] 通過各種實例深入理解賦值運算符 |
[Python] 通過各種實例深入理解算術運算符 |
CloneCoding
創新從一行代碼開始!