Hướng dẫn python tab completion windows - cửa sổ hoàn thành tab python

Tôi đang viết một chương trình giống như vỏ đa nền tảng trong Python và tôi muốn thêm các hành động hoàn thành tab tùy chỉnh. Trên các hệ thống UNIX, tôi có thể sử dụng mô-đun Readline tích hợp và sử dụng mã như sau để chỉ định danh sách hoàn thành có thể khi tôi nhấn phím Tab:

import readline
readline.parse_and_bind( 'tab: complete' )
readline.set_completer( ... )

Làm thế nào tôi có thể làm điều này trên Windows? Tôi muốn tránh dựa vào các gói của bên thứ 3 nếu có thể. Nếu không có giải pháp nào tồn tại là có thể chỉ đơn giản là bẫy phím tab để tôi có thể thực hiện của riêng mình từ đầu?

Đã hỏi ngày 4 tháng 7 năm 2009 lúc 3:11Jul 4, 2009 at 3:11

Hướng dẫn python tab completion windows - cửa sổ hoàn thành tab python

1

Bạn cũng có thể nhìn vào cách Ipython làm điều đó với PyReadline, có thể

Đã trả lời ngày 4 tháng 7 năm 2009 lúc 5:36Jul 4, 2009 at 5:36

David Cournapeaudavid CournapeauDavid Cournapeau

76.1k8 Huy hiệu vàng61 Huy hiệu bạc69 Huy hiệu đồng8 gold badges61 silver badges69 bronze badges

Một khả năng khác để kiểm tra là Readline.py.

Đã trả lời ngày 10 tháng 8 năm 2009 lúc 16:51Aug 10, 2009 at 16:51

Hệ thống tạm dừng hệ thống tạm dừngsystem PAUSE

358K20 Huy hiệu vàng61 Huy hiệu bạc59 Huy hiệu Đồng20 gold badges61 silver badges59 bronze badges

Hướng dẫn python tab completion windows - cửa sổ hoàn thành tab python

Hoàn thành tab trên dấu nhắc lệnh windows. Nhấn tab, và chọn thả xuống dưới đây.

Trong khi làm việc để xây dựng một giao diện người dùng lệnh (để hoàn thành công việc nhanh chóng, thay vì xây dựng GUI chính thức), tôi nhận ra rằng tôi cần một cái gì đó như Tab Tab hoàn thành tự động hoàn thành.

Nhìn vào tài liệu chính thức của Python, nó cho thấy Python đã có mô -đun Read Readline, để làm điều này. Có một hàm gọi là readline.set_completer () để xác định hàm tự động hoàn thành của chúng ta. Nhưng, thật đáng buồn khi mô -đun này không hỗ trợ Windows. Vì vậy, tôi đã phải tìm các lựa chọn thay thế.

Sau đó, tôi tìm thấy bộ công cụ nhắc nhở.

Cài đặt nó qua PIP:

pip install prompt-toolkit

Dưới đây là mã nguồn tối thiểu để hoàn thành tab:

Mã nguồn. Chỉ cần đăng ký danh sách các từ được công nhận trong lớp WordCompleter. Ở đây, chúng tôi đã đăng ký 3 trong số đó (danh sách của người Hồi giáo, người khác, và các từ ngữ)

Hướng dẫn python tab completion windows - cửa sổ hoàn thành tab python

Kết quả. Bất cứ khi nào chúng tôi gõ vào LI LI, thì danh sách thả xuống sẽ xuất hiện. Điều này là do chúng tôi đã đăng ký 3 từ vào lớp WordCompleter: Danh sách của Hồi giáo, Hồi giáo và từ ngữ.

Lưu ý quan trọng

Tại mã nguồn ví dụ, chúng tôi đang nhập mô -đun Unicode_literals. Điều này được sử dụng để đảm bảo rằng mọi chữ viết mà chúng tôi khai báo trong mã nguồn này sẽ được định nghĩa là chuỗi Unicode. Lớp WordCompleter dường như chỉ chấp nhận chuỗi Unicode. Vì vậy, nếu bạn đang cố gắng xây dựng danh sách các từ thành WordCompleter theo chương trình, hãy đảm bảo rằng bạn đang xây dựng một chuỗi Unicode.

listOfword.append(unicode(i))

Điều này sẽ gây ra sự nhầm lẫn, đặc biệt là nếu bạn sử dụng Python 2.7 (trong đó có 2 loại chuỗi, loại bình thường và một unicode).

Python là một ngôn ngữ lập trình mạnh mẽ, dễ học. Nó có cấu trúc dữ liệu cấp cao hiệu quả và một cách tiếp cận đơn giản nhưng hiệu quả để lập trình hướng đối tượng. Cú pháp thanh lịch Python và gõ động, cùng với bản chất được giải thích của nó, làm cho nó trở thành một ngôn ngữ lý tưởng để viết kịch bản và phát triển ứng dụng nhanh chóng trong nhiều lĩnh vực trên hầu hết các nền tảng.

Trình thông dịch Python và thư viện tiêu chuẩn mở rộng có sẵn miễn phí ở dạng nguồn hoặc nhị phân cho tất cả các nền tảng chính từ trang web Python, https://www.python.org/ và có thể được phân phối tự do. Các trang web tương tự cũng chứa các phân phối và con trỏ cho nhiều mô -đun, chương trình và công cụ Python của bên thứ ba miễn phí, và tài liệu bổ sung.

Trình thông dịch Python dễ dàng được mở rộng với các hàm và loại dữ liệu mới được triển khai trong C hoặc C ++ (hoặc các ngôn ngữ khác có thể gọi từ C). Python cũng phù hợp như một ngôn ngữ mở rộng cho các ứng dụng có thể tùy chỉnh.

Hướng dẫn này giới thiệu người đọc một cách không chính thức về các khái niệm và tính năng cơ bản của ngôn ngữ và hệ thống Python. Nó giúp có một thông dịch viên Python tiện dụng cho trải nghiệm thực hành, nhưng tất cả các ví dụ đều được khép kín, vì vậy hướng dẫn cũng có thể được đọc ngoại tuyến.

Để biết mô tả về các đối tượng và mô -đun tiêu chuẩn, hãy xem Thư viện tiêu chuẩn Python. Tài liệu tham khảo ngôn ngữ Python cho một định nghĩa chính thức hơn về ngôn ngữ. Để ghi các tiện ích mở rộng trong C hoặc C ++, hãy đọc mở rộng và nhúng trình thông dịch Python và hướng dẫn tham khảo API Python/C. Ngoài ra còn có một số cuốn sách bao gồm Python theo chiều sâu.The Python Standard Library. The Python Language Reference gives a more formal definition of the language. To write extensions in C or C++, read Extending and Embedding the Python Interpreter and Python/C API Reference Manual. There are also several books covering Python in depth.

Hướng dẫn này không cố gắng toàn diện và bao gồm mọi tính năng, hoặc thậm chí mọi tính năng thường được sử dụng. Thay vào đó, nó giới thiệu nhiều tính năng đáng chú ý nhất của Python, và sẽ cho bạn một ý tưởng tốt về hương vị và phong cách ngôn ngữ. Sau khi đọc nó, bạn sẽ có thể đọc và viết các mô -đun và chương trình Python, và bạn sẽ sẵn sàng tìm hiểu thêm về các mô -đun thư viện Python khác nhau được mô tả trong Thư viện tiêu chuẩn Python.The Python Standard Library.

Thuật ngữ cũng đáng để trải qua.Glossary is also worth going through.

  • 1. Sự thèm ăn của bạn
  • 2. Sử dụng trình thông dịch Python
    • 2.1. Gọi người phiên dịch
      • 2.1.1. Đối số thông qua
      • 2.1.2. Chế độ tương tác
    • 2.2. Thông dịch viên và môi trường của nó
      • 2.2.1. Mã mã nguồn
  • 3. Giới thiệu không chính thức về Python
    • 3.1. Sử dụng Python làm máy tính
      • 3.1.1. Số
      • 3.1.2. Dây
      • 3.1.3. Danh sách
    • 3.2. Những bước đầu tiên hướng tới lập trình
  • 4. Thêm các công cụ lưu lượng điều khiển
    • 4.1. if tuyên bố
    • 4.2. for Báo cáo
    • 4.3. Hàm range()
    • 4.4. Các câu lệnh breakcontinueelse điều khoản trên các vòng lặp
    • 4.5. pass tuyên bố
    • 4.6.
      pip install prompt-toolkit
      0 Báo cáo
    • 4.7. Xác định chức năng
    • 4.8. Thêm về việc xác định các chức năng
      • 4.8.1. Giá trị đối số mặc định
      • 4.8.2. Từ khóa đối số
      • 4.8.3. Tham số đặc biệt
        • 4.8.3.1. Đối số vị trí hoặc phím keyword
        • 4.8.3.2. Các tham số chỉ có vị trí
        • 4.8.3.3. Đối số chỉ từ khóa
        • 4.8.3.4. Ví dụ chức năng
        • 4.8.3.5. Tóm tắt lại
      • 4.8.4. Danh sách đối số tùy ý
      • 4.8.5. Giải nén danh sách đối số
      • 4.8.6. Biểu thức Lambda
      • 4.8.7. Chuỗi tài liệu
      • 4.8.8. Chú thích chức năng
    • 4.9. Intermezzo: Phong cách mã hóa
  • 5. Cấu trúc dữ liệu
    • 5.1. Thêm về danh sách
      • 5.1.1. Sử dụng danh sách làm ngăn xếp
      • 5.1.2. Sử dụng danh sách làm hàng đợi
      • 5.1.3. Danh sách toàn diện
      • 5.1.4. Danh sách lồng nhau toàn diện
    • 5.2. Tuyên bố
      pip install prompt-toolkit
      1
    • 5.3. Tuples và trình tự
    • 5.4. Bộ
    • 5.5. Từ điển
    • 5.6. Kỹ thuật lặp
    • 5.7. Nhiều hơn về điều kiện
    • 5,8. So sánh trình tự và các loại khác
  • 6. Mô -đun
    • 6.1. Thêm về các mô -đun
      • 6.1.1. Thực thi các mô -đun dưới dạng tập lệnh
      • 6.1.2. Đường dẫn tìm kiếm mô -đun
      • 6.1.3. “Các tệp Python đã biên dịch”
    • 6.2. Các mô -đun tiêu chuẩn
    • 6.3. Hàm
      pip install prompt-toolkit
      2
    • 6.4. Gói
      • 6.4.1. Nhập * từ một gói
      • 6.4.2. Tài liệu tham khảo nội bộ
      • 6.4.3. Các gói trong nhiều thư mục
  • 7. Đầu vào và đầu ra
    • 7.1. Định dạng đầu ra fancier
      • 7.1.1. Định dạng chuỗi chữ
      • 7.1.2. Phương thức định dạng chuỗi ()
      • 7.1.3. Định dạng chuỗi thủ công
      • 7.1.4. Định dạng chuỗi cũ
    • 7.2. Đọc và ghi tệp
      • 7.2.1. Phương thức của các đối tượng tệp
      • 7.2.2. Lưu dữ liệu có cấu trúc với
        pip install prompt-toolkit
        3
  • 8. Lỗi và ngoại lệ
    • 8.1. Lỗi cú pháp
    • 8.2. Ngoại lệ
    • 8.3. Xử lý ngoại lệ
    • 8.4. Nâng cao ngoại lệ
    • 8,5. Chuỗi ngoại lệ
    • 8.6. Ngoại lệ do người dùng xác định
    • 8.7. Xác định hành động dọn dẹp
    • 8.8. Hành động dọn dẹp được xác định trước
  • 9. Lớp học
    • 9.1. Một từ về tên và đối tượng
    • 9.2. Phạm vi Python và không gian tên
      • 9.2.1. Ví dụ về phạm vi và không gian tên
    • 9.3. Cái nhìn đầu tiên về các lớp học
      • 9.3.1. Cú pháp định nghĩa lớp
      • 9.3.2. Đối tượng lớp
      • 9.3.3. Đối tượng thể hiện
      • 9.3.4. Đối tượng phương thức
      • 9.3.5. Biến lớp và trường hợp
    • 9.4. Nhận xét ngẫu nhiên
    • 9,5. Di sản
      • 9.5.1. Nhiều kế thừa
    • 9.6. Biến riêng
    • 9.7. Vụn vặt
    • 9.8. Trình lặp
    • 9.9. Máy phát điện
    • 9.10. Biểu thức máy phát
  • 10. Chuyến tham quan ngắn gọn về thư viện tiêu chuẩn
    • 10.1. Giao diện hệ điều hành
    • 10.2. Tập tin ký tự đại diện
    • 10.3. Đối số dòng lệnh
    • 10,4. Chuyển hướng đầu ra lỗi và chấm dứt chương trình
    • 10,5. Chuỗi kết hợp mẫu
    • 10.6. toán học
    • 10.7. Truy cập Internet
    • 10.8. Ngày và thời gian
    • 10.9. Nén dữ liệu
    • 10.10. Đo lường hiệu suất
    • 10.11. Kiểm soát chất lượng
    • 10.12. Bao gồm pin
  • 11. Chuyến tham quan ngắn gọn về thư viện tiêu chuẩn - Phần II
    • 11.1. Định dạng đầu ra
    • 11.2. Tạo khuôn
    • 11.3. Làm việc với bố cục hồ sơ dữ liệu nhị phân
    • 11.4. Đa luồng
    • 11,5. Đăng nhập
    • 11.6. Tài liệu tham khảo yếu
    • 11.7. Các công cụ để làm việc với danh sách
    • 11.8. Số học dấu thập phân
  • 12. Môi trường và gói ảo
    • 12.1. Giới thiệu
    • 12.2. Tạo môi trường ảo
    • 12.3. Quản lý các gói với PIP
  • 13. Bây giờ là gì?
  • 14. Chỉnh sửa đầu vào tương tác và thay thế lịch sử
    • 14.1. Hoàn thành tab và chỉnh sửa lịch sử
    • 14.2. Lựa chọn thay thế cho thông dịch viên tương tác
  • 15. Số học điểm nổi: Các vấn đề và giới hạn
    • 15.1. Lỗi đại diện
  • 16. Phụ lục
    • 16.1. Chế độ tương tác
      • 16.1.1. Xử lý lỗi
      • 16.1.2. Các tập lệnh Python thực thi
      • 16.1.3. Tệp khởi động tương tác
      • 16.1.4. Các mô -đun tùy chỉnh