Trình xử lý Python Ctrl-C
Giới thiệu. Tìm hiểu cách nắm bắt và xử lý các tín hiệu hệ điều hành như SIGINT (CTRL-C) trong Python cho người mới bắt đầuBởi doanh nghiệp xanthium doanh nghiệp xanthium Theo dõi Show
Thêm bởi tác giả Giới thiệu. https. //www. youtube. com/c/XanthiumIndustries/videos Thông tin thêm về các doanh nghiệp xanthium » Sau đây, chúng ta sẽ tìm hiểu cách nắm bắt và xử lý các tín hiệu hệ điều hành như SIGINT và SIGBREAK trên Linux và HĐH Windows để kiểm soát luồng tập lệnh python của bạn trong quá trình thực thi Chúng tôi sẽ sử dụng mô-đun tín hiệu từ Python 3 để nắm bắt và xử lý tín hiệu hệ điều hành Thêm MẹoĐặt câu hỏiNhận xétTải xuống Quân nhu
Thêm MẹoĐặt câu hỏiNhận xétTải xuống Bước 1. nội dung
Thêm MẹoĐặt câu hỏiNhận xétTải xuống Bước 2. mã nguồnMã có thể hướng dẫn hiển thị ở đây có thể là một phần hoặc mã giả vừa đủ để làm nổi bật các kỹ thuật hoặc phương pháp có liên quan. Vui lòng sử dụng mã nguồn đầy đủ từ Github Repo của chúng tôi để tránh lỗi
Thêm MẹoĐặt câu hỏiNhận xétTải xuống Bước 3. Tín hiệu là gìTín hiệu là cách mà một chương trình hoặc quy trình (ở đây là tập lệnh python của chúng tôi) có thể nhận thông tin từ Hệ điều hành rằng một số sự kiện nhất định như Nhấn bàn phím (CTRL + C ) hoặc Lỗi đã xảy ra. Tín hiệu được hệ điều hành gán Giá trị nguyên Khi chúng ta nhấn CTRL + C trên Bàn phím, Hệ điều hành (Cả Windows và Linux) sẽ tạo ra tín hiệu SIGINT được gửi đến chương trình hiện đang hoạt động Không phải tất cả các tín hiệu đều khả dụng trên tất cả các hệ thống. Tín hiệu khác nhau giữa các hệ điều hành (Linux/Windows) Thêm MẹoĐặt câu hỏiNhận xétTải xuống Bước 4. Kiểm tra các tín hiệu khả dụng trong hệ điều hành của bạnVì không phải tất cả các tín hiệu đều khả dụng trong mọi hệ điều hành, nên bạn nên biết những tín hiệu nào khả dụng trên hệ thống của mình Ở đây chúng ta sẽ sử dụng Python 3 (Python 3. 9. x) và để truy cập các tín hiệu, chúng tôi phải nhập mô-đun tín hiệu import signal # Import signal module Đoạn mã trên sẽ in các tín hiệu có sẵn trên một hệ điều hành cụ thể. Tải xuống mã đầy đủ từ Github Đây valid_signals = signal.valid_signals() trả về một tập hợp các tín hiệu dành riêng cho hệ điều hành có sẵn, sau đó được in ra Tín hiệu hệ điều hành khả dụng trên Windows 10 Thêm MẹoĐặt câu hỏiNhận xétTải xuống Bước 5. Tín hiệu lập trình trên Python 3Để sử dụng Tín hiệu mà tập lệnh của chúng tôi nhận được, chúng tôi phải thực hiện hai việc
import signal Ở đây chúng tôi sẽ sử dụng tín hiệu SIGINT để kiểm soát việc thực thi tập lệnh Python 3 của chúng tôi SIGINT Signal phổ biến cho cả hệ thống Windows và Linux và giúp chúng tôi chạy mã của mình trên cả Hệ thống Windows và Linux Vui lòng sử dụng mã từ Github import signal # Import signal module Đây def SignalHandler_SIGINT(SignalNumber,Frame): là Trình xử lý tín hiệu, Vì vậy, khi SIGINT tín hiệu được tạo, hàm này được gọi và câu lệnh print() bên dưới được gọi tuyên bố signal.signal(signal.SIGINT,SignalHandler_SIGINT) đăng ký hàm xử lý tín hiệu SignalHandler_SIGINT(SignalNumber,Frame). với tín hiệu SIGINT signal. KÝ HIỆU Xin lưu ý rằng mã phải được chạy dưới dòng lệnh Nếu bạn sử dụng một IDE như Thonny hoặc IDLE, thì IDE đó có xu hướng cản trở việc nhận tín hiệu SIGINT Thêm MẹoĐặt câu hỏiNhận xétTải xuống Bước 6. Thoát an toàn khỏi vòng lặp vô hạn trong Python bằng CTRL + C (SIGINT)Trong ví dụ này, chúng ta sẽ tìm hiểu cách thoát khỏi vòng lặp vô hạn trong Python 3 một cách an toàn bằng cách sử dụng các tín hiệu Trong một số ứng dụng như Phần mềm hệ thống thu thập dữ liệu cổng nối tiếp được viết bằng Python, chúng tôi phải truy vấn một cảm biến hoặc Bộ vi điều khiển như bo mạch Arduino hoặc Raspberry Pi liên tục trong một vòng lặp vô hạn Trong các ứng dụng đó, chúng ta có thể sử dụng tín hiệu SIGINT (CTRL + C) để ngắt vòng lặp vô hạn và đóng ứng dụng một cách an toàn mà không bị rò rỉ tài nguyên Làm cách nào để xử lý Ctrl C trong tập lệnh Python?Hoạt động của mã tín hiệu SIGINT Python
. When you hit CTRL +C on the Keyboard , A SIGINT signal is generated by the OS (Windows/Linux) and send to the executing script.
Tại sao Python không thoát Ctrl C?Đó là do thiết kế của trình thông dịch Python và phiên tương tác . Ctrl + C gửi một tín hiệu, SIGINT, tới quy trình Python mà trình thông dịch Python xử lý bằng cách tăng ngoại lệ KeyboardInterrupt trong phạm vi hiện đang chạy.
Ctrl Z trong Python là gì?CTRL-Z được sử dụng làm điểm đánh dấu kết thúc tin nhắn khi gửi SMS ở chế độ văn bản với AT+CMGS=. lệnh .
Làm cách nào để phát hiện chấm dứt trong Python?Để phát hiện thoát tập lệnh, chúng ta có thể sử dụng thư viện atexit tích hợp sẵn của Python . Mô-đun atexit được sử dụng để đăng ký hoặc hủy đăng ký các chức năng xử lý dọn dẹp. Các chức năng được đăng ký bởi atexit sẽ tự động được gọi khi kết thúc trình thông dịch. |