Rumah >pembangunan bahagian belakang >Tutorial Python >Bagaimanakah Saya Boleh Membaca Aksara Tunggal daripada Input Pengguna Tanpa Menyekat atau Bergema Cross-Platform?

Bagaimanakah Saya Boleh Membaca Aksara Tunggal daripada Input Pengguna Tanpa Menyekat atau Bergema Cross-Platform?

Linda Hamilton
Linda Hamiltonasal
2024-12-29 19:30:12480semak imbas

How Can I Read a Single Character from User Input Without Blocking or Echoing Cross-Platform?

Input Tidak Menyekat: Membaca Satu Aksara Rentas Platform

Membaca satu aksara daripada input pengguna tanpa ia digema ke skrin adalah keperluan biasa dalam pelbagai senario pengaturcaraan. Walaupun Windows menyediakan fungsi khusus untuk tujuan ini, ia boleh mencabar untuk melaksanakan penyelesaian merentas platform.

Pendekatan Merentas Platform

Untuk mengatasi had ini, a pendekatan serba boleh menggunakan perpustakaan ActiveState Recipes menawarkan penyelesaian yang berfungsi dengan lancar merentasi Windows, Linux dan OSX:

class _Getch:
    """Gets a single character from standard input.  Does not echo to the
screen."""
    def __init__(self):
        try:
            self.impl = _GetchWindows()
        except ImportError:
            self.impl = _GetchUnix()

    def __call__(self): return self.impl()


class _GetchUnix:
    def __init__(self):
        import tty, sys

    def __call__(self):
        import sys, tty, termios
        fd = sys.stdin.fileno()
        old_settings = termios.tcgetattr(fd)
        try:
            tty.setraw(sys.stdin.fileno())
            ch = sys.stdin.read(1)
        finally:
            termios.tcsetattr(fd, termios.TCSADRAIN, old_settings)
        return ch


class _GetchWindows:
    def __init__(self):
        import msvcrt

    def __call__(self):
        import msvcrt
        return msvcrt.getch()


getch = _Getch()

Penggunaan

Untuk menggunakan kaedah ini, nyatakan kelas _Getch dan gunakan antara muka boleh panggilnya untuk membaca satu aksara daripada input pengguna:

ch = getch()

Pendekatan ini menyediakan mekanisme input tidak menyekat, membenarkan pembangun membaca satu aksara daripada pengguna tanpa mengganggu aliran program atau menggemakannya ke skrin. Ia adalah alat yang berharga untuk respons pantas dan aplikasi baris perintah interaktif.

Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Membaca Aksara Tunggal daripada Input Pengguna Tanpa Menyekat atau Bergema Cross-Platform?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn