Trang chủHướng dẫnCách thực thi lệnh hệ thống trong Python – os.system(), subprocess.call()
Chuyên gia

Cách thực thi lệnh hệ thống trong Python – os.system(), subprocess.call()

CyStack blog 3 phút để đọc
CyStack blog17/08/2025
Locker Avatar

Chris Pham

Technical Writer

Locker logo social
Reading Time: 3 minutes

Trong hướng dẫn này, chúng ta sẽ tìm hiểu về cách thực thi lệnh hệ thống trong Python.

lệnh hệ thống trong Python

Lệnh hệ thống trong Python

Khi viết chương trình bằng Python, đôi khi bạn sẽ cần thực thi một số lệnh shell để phục vụ cho chương trình của mình. Ví dụ, nếu sử dụng PyCharm IDE, bạn có thể thấy rằng có tùy chọn chia sẻ dự án lên GitHub. Và có lẽ bạn cũng biết rằng việc truyền tải file này được thực hiện thông qua git, một công cụ vận hành bằng dòng lệnh. Do đó, PyCharm đã thực thi một số lệnh shell ngầm phía sau để thực hiện việc đó.

Trong bài hướng dẫn này, chúng ta sẽ tìm hiểu những kiến thức cơ bản về cách thực thi lệnh shell từ mã Python.

Hàm os.system() trong Python

Chúng ta có thể thực thi lệnh hệ thống bằng cách sử dụng hàm os.system(). Theo tài liệu chính thức, hàm này:

Được triển khai bằng cách gọi hàm system() trong ngôn ngữ C chuẩn, và có cùng các giới hạn.

Tuy nhiên, nếu lệnh tạo ra bất kỳ đầu ra nào, thì đầu ra đó sẽ được gửi đến luồng xuất tiêu chuẩn của trình thông dịch Python. Việc sử dụng hàm này không được khuyến khích.

Trong đoạn mã sau đây, chúng ta sẽ thử kiểm tra phiên bản của Git bằng cách sử dụng lệnh hệ thống git --version.

import os

cmd = "git --version"

returned_value = os.system(cmd)  # returns the exit code in unix
print('returned value:', returned_value)

Kết quả sau đây được tìm thấy trên Ubuntu 16.04, nơi Git đã được cài đặt sẵn.

git version 2.14.2
returned value: 0

Lưu ý rằng chúng ta không chủ động in kết quả của lệnh git --version ra màn hình, mà nó được in ra vì console chính là luồng xuất tiêu chuẩn trong trường hợp này.

Hàm subprocess.call() trong Python

Ở phần trước, chúng ta đã thấy rằng hàm os.system() hoạt động tốt. Tuy nhiên, đó không phải là cách được khuyến nghị để thực thi các lệnh shell. Thay vào đó, chúng ta sẽ sử dụng mô-đun subprocess trong Python để chạy lệnh hệ thống.

Chúng ta có thể chạy các lệnh shell bằng cách sử dụng hàm subprocess.call(). Hãy xem đoạn mã sau, vốn tương đương với đoạn mã sử dụng os.system() ở phần trước.

import subprocess

cmd = "git --version"

returned_value = subprocess.call(cmd, shell=True)  # returns the exit code in unix
print('returned value:', returned_value)

Và kết quả đầu ra cũng sẽ giống y như vậy.

python system command

Hàm subprocess.check_output() trong Python

Cho đến giờ, chúng ta đã thực thi các lệnh hệ thống bằng Python, nhưng vẫn chưa thể xử lý được kết quả đầu ra do các lệnh đó tạo ra. Với hàm subprocess.check_output(), chúng ta có thể lưu kết quả đầu ra vào một biến để dễ dàng thao tác hoặc xử lý sau đó.

import subprocess

cmd = "date"

# returns output as byte string
returned_output = subprocess.check_output(cmd)

# using decode() function to convert byte string to string
print('Current date is:', returned_output.decode("utf-8"))

Nó sẽ tạo ra kết quả đầu ra như sau:

Current date is: Thu Oct  5 16:31:41 IST 2017

Vậy là trong các phần trên, chúng ta đã thảo luận về những ý tưởng cơ bản liên quan đến việc thực thi lệnh hệ thống trong Python.

0 Bình luận

Đăng nhập để thảo luận

Chuyên mục Hướng dẫn

Tổng hợp các bài viết hướng dẫn, nghiên cứu và phân tích chi tiết về kỹ thuật, các xu hướng công nghệ mới nhất dành cho lập trình viên.

Đăng ký nhận bản tin của chúng tôi

Hãy trở thành người nhận được các nội dung hữu ích của CyStack sớm nhất

Xem chính sách của chúng tôi Chính sách bảo mật.

Đăng ký nhận Newsletter

Nhận các nội dung hữu ích mới nhất