Có anyway tôi có thể làm cho kịch bản của tôi thực hiện một trong các chức năng của tôi khi Ctrl+c
bị nhấn khi tập lệnh đang chạy?Làm cách nào để ghi đè ngắt bàn phím? (Python)
Trả lời
Hãy xem signal handlers. CTRL-C tương ứng với SIGINT (tín hiệu số 2 trên hệ thống posix).
Ví dụ:
#!/usr/bin/env python
import signal
import sys
def signal_handler(signal, frame):
print 'You pressed Ctrl+C - or killed me with -2'
sys.exit(0)
signal.signal(signal.SIGINT, signal_handler)
print 'Press Ctrl+C'
signal.pause()
lưu ý: điều này cũng nên nhấn xử lý tín hiệu khi bạn đi 'kill -2 [pid]' trong OS – wim
@wim, điểm tốt, cảm ơn, thêm một gợi ý cho câu trả lời của tôi - là có thực sự một cách để phân biệt một giết bằng bàn phím từ giết người bằng cách giết? – miku
Tôi đã nhìn thấy trước đây sẽ nâng cao một ngoại lệ 'KeyboardInterrupt' trong python, sau này sẽ không. Nhưng tôi không chắc chắn về các chi tiết thực hiện tại sao điều này là như vậy. – wim
Sử dụng KeyboardInterrupt exception và gọi chức năng của bạn trong khối except
.
Chắc chắn.
try:
# Your normal block of code
except KeyboardInterrupt:
# Your code which is executed when CTRL+C is pressed.
finally:
# Your code which is always executed.
- 1. Làm cách nào để ghi đè nhập bằng Python?
- 2. Ghi đè Phím tắt của Trình duyệt
- 3. Mô phỏng ngắt bàn phím Ctrl-C trong Python khi đang làm việc trong Linux
- 4. Làm cách nào để chuyển/bắt/trả lời Bàn phím của Python trong Trình duyệt C++?
- 5. Làm thế nào để ghi đè lên <ENTER> hành vi quan trọng của bàn phím ảo trong Android
- 6. Làm cách nào để ghi đè hành vi nhấn phím ESC cho hộp thoại jQuery
- 7. Làm thế nào để kích hoạt hoặc mô phỏng ngắt bàn phím?
- 8. Làm cách nào để tôi có thể ngắt mã đang chạy trong R bằng lệnh bàn phím?
- 9. Đóng tất cả các chủ đề bằng bàn phím ngắt
- 10. Làm cách nào để loại bỏ bàn phím trên UIWebView?
- 11. Làm cách nào để phát hiện bàn phím libgdx
- 12. Làm cách nào để buộc bàn phím hiển thị/ẩn?
- 13. python ghi đè dòng trước
- 14. Python: ghi đè phép nhân
- 15. Làm cách nào để kiểm soát bàn phím và chuột bằng Python?
- 16. Làm thế nào để chơi âm thanh bấm bàn phím trong bàn phím tùy chỉnh?
- 17. Chuỗi ghi đè Python __hash__
- 18. Ghi đè phương thức ghi đè (C#)
- 19. Tôi làm cách nào để ghi đè appendChild()?
- 20. Làm cách nào để ghi đè lên td align = "center"?
- 21. Làm cách nào để ghi đè thuộc tính cấu hình?
- 22. Làm cách nào để ghi đè thuộc tính css?
- 23. Làm thế nào để ghi đè đúng cách bình đẳng?
- 24. Làm cách nào để ghi đè RequestValidation trong ASP.NET WebAPI
- 25. Làm cách nào để ghi đè sự kiện lỗi window.location?
- 26. Làm cách nào để ghi đè xóa trong C++?
- 27. Làm cách nào để thực thi từ khóa 'ghi đè'?
- 28. Làm cách nào để ghi đè kiểu Android.R.layout.simple_list_item_multiple_choice?
- 29. Làm cách nào để ghi đè lên DisplayFor boolean?
- 30. Làm cách nào để ghi đè tải trọng trong số
Xem http://stackoverflow.com/questions/4205317/capture-keyboardinterrupt-in-python-without-try-except cho một số tùy chọn. – DSM