Viết đầu ra của bảng điều khiển ở cùng một nơi có thể là một kỹ thuật hữu ích cho các nhà phát triển khi làm việc với các ứng dụng Python, đặc biệt là khi phát triển giao diện người dùng trong dòng lệnh, tạo chỉ báo tiến trình và cập nhật dữ liệu bảng điều khiển trong thời gian thực. Bài viết này sẽ thảo luận về giải pháp ghi đè đầu ra của bảng điều khiển, giải thích mã từng bước và đi sâu vào các thư viện cụ thể cũng như các hàm Python tích hợp để thực hiện tác vụ này.
Để đạt được điều này, chúng ta có thể sử dụng thư viện Python nổi tiếng “curses” được thiết kế đặc biệt để tạo các ứng dụng dựa trên thiết bị đầu cuối phụ thuộc nhiều vào việc sử dụng giao diện người dùng dựa trên văn bản. Tuy nhiên, với mục đích đơn giản và dễ hiểu, chúng tôi sẽ sử dụng các mô-đun “sys” và “time” tích hợp của Python để ghi đè các đầu ra của bảng điều khiển.
Ghi đè đầu ra của bảng điều khiển bằng Python
Ý tưởng chính là sử dụng sys.stdout.write() chức năng cho phép chúng ta in trên cùng một dòng, cùng với vận chuyển trở lại ký tự (“r”) để quay lại đầu dòng, cho phép chúng ta ghi đè kết quả đầu ra một cách hiệu quả.
Đây là một ví dụ về ghi đè đầu ra của bảng điều khiển bằng Python:
import time import sys for i in range(10): sys.stdout.write("rStep: %d" % i) sys.stdout.flush() time.sleep(1)
Giải thích từng bước về mã
1. Đầu tiên, nhập các mô-đun cần thiết:
import time import sys
Sản phẩm thời gian mô-đun sẽ được sử dụng để thêm độ trễ giữa các lần lặp và hệ thống module sẽ được sử dụng để ghi đầu ra vào bàn điều khiển.
2. Tiếp theo, tạo một vòng lặp để lặp qua một dãy số, mô phỏng bộ đếm tiến trình:
for i in range(10):
Vòng lặp này lặp từ 0 đến 9, chạy hiệu quả mười lần.
3. Bên trong vòng lặp, sử dụng sys.stdout.write() chức năng in số lần lặp hiện tại cùng với nhãn:
sys.stdout.write("rStep: %d" % i)
Ký tự “r” là dấu xuống dòng có tác dụng đặt lại về đầu dòng, cho phép đầu ra tiếp theo ghi đè lên đầu ra hiện tại.
4. Đảm bảo sử dụng sys.stdout.flush () sau khi viết vào bảng điều khiển:
sys.stdout.flush()
Hàm Flush() xóa bộ đệm bên trong và đảm bảo rằng kết quả đầu ra được hiển thị ngay lập tức.
5. Cuối cùng, thêm độ trễ bằng cách sử dụng thời gian ngủ() chức năng:
time.sleep(1)
Việc tạm dừng này sẽ kéo dài trong một giây, giúp dễ dàng quan sát đầu ra bị ghi đè hơn.
Bây giờ bạn có thể thấy đầu ra của bàn điều khiển được ghi đè như thế nào trên mỗi lần lặp.
Tổng quan về Thư viện “sys”
Sản phẩm hệ thống thư viện là một mô-đun Python tích hợp mạnh mẽ cung cấp quyền truy cập vào phần bên trong của trình thông dịch và các tham số khác nhau dành riêng cho hệ thống. Trong bài viết này, chúng tôi tập trung vào việc sử dụng sys.stdout.write() và sys.stdout.flush () chức năng ghi đè đầu ra của bàn điều khiển. Tuy nhiên, thư viện “sys” cung cấp nhiều chức năng khác, như đối số dòng lệnh, thứ tự byte, ngoại lệ và đường dẫn được xác định trước.
Tổng quan về Thư viện “thời gian”
Sản phẩm thời gian thư viện là một mô-đun Python tích hợp khác cung cấp nhiều chức năng liên quan đến thao tác và xử lý thời gian. Trong ví dụ của chúng tôi, chúng tôi đã sử dụng thời gian ngủ() để tạo độ trễ giữa các lần lặp. Thư viện “thời gian” cũng cung cấp các công cụ khác để đo thời gian thực hiện, chuyển đổi giữa các định dạng thời gian và lấy thời gian hiện tại. Mô-đun này rất cần thiết cho các nhà phát triển làm việc với các hàm liên quan đến thời gian hoặc lập lịch tác vụ trong ứng dụng Python.