7 days of WordPress plugins, themes & templates - for free!* Unlimited asset downloads! Start 7-Day Free Trial
Advertisement
  1. Code
  2. Python

Cách Chạy các Lệnh Unix Trong Chương trình Python của Bạn

Scroll to top
Read Time: 3 mins

Vietnamese (Tiếng Việt) translation by Dai Phong (you can also view the original English article)

Unix là một hệ điều hành được phát triển vào khoảng năm 1969 tại AT & T Bell Labs bởi Ken Thompson và Dennis Ritchie. Có nhiều lệnh Unix thú vị mà chúng ta có thể sử dụng để thực hiện các nhiệm vụ khác nhau. Câu hỏi đặt ra là, chúng ta có thể sử dụng các lệnh như vậy trực tiếp trong một chương trình Python được không? Đây là những gì tôi sẽ giới thiệu với bạn trong hướng dẫn này.

Lệnh Unix ls liệt kê tất cả các tập tin trong thư mục. Nếu bạn để nguyên ls trong một script Python, thì đây là những gì bạn sẽ nhận được khi bạn chạy chương trình:

Điều này cho thấy rằng trình biên dịch của Python xem ls như là một biến và yêu cầu nó phải được định nghĩa (tức là khởi tạo), và không coi nó như một lệnh Unix.

os.system()

Một giải pháp cho vấn đề này là sử dụng os.system() từ module os của Python.

Như đã đề cập trong tài liệu hướng dẫn, os.system():

Thực thi lệnh (một chuỗi) trong một shell con. Điều này được thực hiện bằng cách gọi hàm system tiêu chuẩn của ngôn ngữ C, và có những hạn chế tương tự.

Như vậy, chúng ta có thể chạy lệnh ls bằng Python như sau:

Điều này sẽ trả về danh sách các tập tin trong thư mục hiện tại của bạn, đó là nơi chứa chương trình .py của bạn.

Hãy lấy một ví dụ khác. Nếu bạn muốn trả về ngày và giờ hiện tại, bạn có thể sử dụng lệnh lệnh date của Unix như sau:

Trong trường hợp của tôi, đây là kết quả mà tôi nhận được từ script trên:

Tue May 24 17:29:20 CEST 2016

call()

Mặc dù os.system() làm việc tốt, nhưng nó không được khuyến khích sử dụng vì nó được xem như đã cũ và không được hỗ trợ. Một giải pháp được khuyến khích hơn đó là hàm call(args) nằm trong mô-đun subprocess của Python. Như đề cập trong tài liệu hướng dẫn về hàm này:

Thực thi lệnh được mô tả bởi args. Chờ cho lệnh thực thi xong, sau đó trả về thuộc tính returncode.

Nếu chúng ta muốn chạy lệnh ls của Unix bằng phương thức này, chúng ta có thể làm như sau:

Hãy xem làm thế nào chúng ta có thể trả về ngày bằng mô-đun subprocess, nhưng chúng ta hãy làm cho ví dụ trở nên thú vị hơn.

Ví dụ ở trên có thể được chạy đơn giản hơn bằng cách sử dụng check_output(), như sau:

Đầu ra của script ở trên là:

It is Tue May 24 19:14:22 CEST 2016

Các ví dụ ở trên cho thấy tính linh hoạt trong việc sử dụng các hàm khác nhau của subprocess và cách chúng ta có thể truyền kết quả vào các biến để thực hiện các hoạt động tiếp theo.

Tóm tắt

Như chúng ta đã thấy trong hướng dẫn này, các lệnh Unix có thể được gọi và thực thi bằng mô-đun subprocess, nó cung cấp tính linh hoạt cao khi làm việc với các lệnh Unix thông qua các hàm khác nhau của nó. Bạn có thể tìm hiểu thêm về mô-đun này và các hàm khác nhau của nó từ tài liệu hướng dẫn Python.

Advertisement
Did you find this post useful?
Want a weekly email summary?
Subscribe below and we’ll send you a weekly email summary of all new Code tutorials. Never miss out on learning about the next big thing.
Advertisement
Looking for something to help kick start your next project?
Envato Market has a range of items for sale to help get you started.