Trăn sys.stdin

Có một số cách lấy đầu vào trong Python, phổ biến nhất là thông qua hàm input[]. Tuy nhiên, đối với một số trường hợp sử dụng, bạn có thể thích các phương pháp khác hoạt động hơi khác một chút. Một trong những phương thức khác này là Python stdin, là một phần của mô-đun

import sys

for line in sys.stdin:
    print[line, end=""]
0

Tính năng độc đáo về Python stdin là nó cho phép bạn nhập dữ liệu trực tiếp từ dấu nhắc lệnh. Bạn sẽ thấy các tùy chọn này hữu ích trên các hệ thống Linux nói riêng

Sử dụng Python Stdin

Điều đầu tiên cần làm là nhập sys từ thư viện chuẩn

import sys

Không cần tải xuống riêng thư viện này, vì nó là một phần của thư viện chuẩn [đi kèm với Python]

Có một số cách chúng ta có thể sử dụng sys. stdin trong Python, vì vậy hãy xem xét từng cái một

import sys

for line in sys.stdin:
    print[line]

Kỹ thuật trên cho phép bạn nhập dữ liệu liên tục vào Chương trình Python từ dấu nhắc lệnh hoặc thiết bị đầu cuối IDE. Tất cả những gì bạn phải làm là nhấn enter để mỗi dòng/từ bạn viết sẽ được gửi trở lại chương trình, nơi nó sẽ được in ra

Kỹ thuật này hơi phức tạp một chút, nhưng nó là một cách khá hữu ích để lấy thông tin đầu vào. stdin có thể chấp nhận nhiều dòng mà không cần phải nhập tất cả chúng trước. Nếu bạn nhấn enter, Python stdin sẽ trả về dữ liệu hiện được nhập, sau đó chỉ cần di chuyển đến dòng tiếp theo, chờ nhập thêm, thay vì thoát

Bạn chỉ có thể thoát ra khỏi vòng lặp nhập liệu vô tận này bằng stdin khi nhấn tổ hợp phím CTRL + C. [Một số bạn có thể phải sử dụng CTRL + Z, tùy thuộc vào hệ điều hành của bạn]

Python stdin tự động thêm ký tự xuống dòng “\n” sau khi nhận đầu vào từ người dùng. Ngay bây giờ đầu vào của chúng tôi có vẻ hơi sai, bởi vì nếu chúng tôi in nó ra, chúng tôi sẽ có một dòng trống ở giữa. Điều này là do print[] cũng thêm ký tự dòng mới của riêng nó theo mặc định

Chúng ta có thể thay đổi hành vi này bằng cách sửa đổi chức năng in như hình bên dưới

import sys

for line in sys.stdin:
    print[line, end=""]

Ngoài ra, bạn có thể làm như sau

import sys

for line in sys.stdin:
    if 'exit' == line.rstrip[]:
        break
    print[line]

Nếu nhập từ “thoát” thì vòng lặp sẽ bị phá vỡ. Điều này hữu ích nếu bạn muốn kiểm soát nhiều hơn cách bạn có thể thoát khỏi stdin

Điều này tương tự như kỹ thuật đầu tiên, nhưng thay vào đó, nó đọc toàn bộ khối dữ liệu cùng một lúc, thay vì từng dòng một

import sys

inp = sys.stdin.read[]
print[inp]

Tương tự như kỹ thuật trước, bạn chỉ có thể thoát khỏi điều này khi nhấn tổ hợp phím CTRL + C

Đây là một cách khác để nhập dữ liệu, hữu ích cho việc đếm số dòng đã nhập. Nó lấy từng dòng và lưu nó vào một danh sách, danh sách này sẽ trả về chương trình

import sys

inp = sys.stdin.readlines[]
print[len[inp]]
print[inp]

Đây là đầu vào và đầu ra tương ứng cho đoạn mã trên. “Xin chào thế giới” là đầu vào mà chúng tôi chia thành hai dòng và hai dòng cuối cùng hiển thị đầu ra

Hello 
World
2
['Hello \n', 'World\n']

Điều này đánh dấu sự kết thúc của Hướng dẫn Python Stdin. Mọi đề xuất hoặc đóng góp cho CodersLegacy đều được chào đón. Các câu hỏi liên quan đến nội dung hướng dẫn có thể hỏi ở phần bình luận bên dưới

Khi bạn đang viết mã python, điều cơ bản và cần thiết nhất là dữ liệu. Dữ liệu mà bạn có thể thực hiện các phép tính toán học và số học để cuối cùng nhận được kết quả mong muốn. Tuy nhiên, để thực hiện các thao tác này, bạn cần nhập dữ liệu vào mã của mình. Mặc dù có nhiều cách khác nhau để bạn có thể nhập dữ liệu vào mã của mình, nhưng chúng tôi sẽ trình bày cụ thể thông tin về đầu vào đọc python từ stdin

nội dung

  • Stdin là gì?
  • Đọc đầu vào từ Stdin bằng Input[]
  • Đọc đầu vào từ Stdin bằng Mô-đun Sys
  • Đọc đầu vào từ Stdin bằng mô-đun Fileinput
  • Đọc dữ liệu đầu vào nhị phân từ Stdin
  • hệ thống. readline Đọc từ Stdin
  • Đọc đầu vào từ dòng Stdin theo dòng
  • Đọc Stdin cho đến ký tự cụ thể
  • Câu hỏi thường gặp về Python Đọc đầu vào từ Stdin
  • Phần kết luận
  • Xu hướng bài viết Python

Stdin là gì?

Đọc đầu vào bằng Python bằng stdin

Stdin là đầu vào tiêu chuẩn. Đầu vào tiêu chuẩn về cơ bản là một luồng tạo một tệp trong đó nó lưu trữ các đầu vào mà từ đó chương trình có thể truy cập dữ liệu đầu vào và ghi đầu ra tương ứng. Ngoài ra, có nhiều cách bạn có thể đọc đầu vào từ stdin trong lập trình python. Chúng tôi sẽ đề cập đến những phương pháp trong bài viết này

Đọc đầu vào từ Stdin bằng Input[]

Trong phương pháp đầu tiên, chúng ta sẽ xem cách chúng ta có thể đọc đầu vào tiêu chuẩn bằng hàm ‘input[]’. Lấy đầu vào bằng hàm ‘input[]’ khá đơn giản. Hãy trực tiếp hiểu cú pháp và cách sử dụng hàm với sự trợ giúp của một ví dụ

x = input["write your input: "] #define a variable to store input in
print[x] #print the variable to get output in form of input string, variable or float.

đầu ra

________số 8

Trong ví dụ trên, chúng tôi sử dụng một biến trong đó chúng tôi lưu trữ đầu vào và in biến đó để in đầu vào được lưu trữ. Chúng ta cũng có thể thực hiện các phép toán và số học trên biến này nếu dạng đầu vào là một số nguyên hoặc bất kỳ dạng tính toán nào khác

xu hướng

[Đã sửa] Các byte str hoặc os dự kiến. lỗi đối tượng giống đường dẫn

Đọc đầu vào từ Stdin bằng Mô-đun Sys

Mô-đun sys cung cấp nhiều chức năng, một trong số đó là 'sys. stdin[]'. Một lần nữa, hãy hiểu rõ hơn với sự trợ giúp của một ví dụ

import sys

for line in sys.stdin:
    if 'Exit' == line.rstrip[]:
        break
    print[f'The input entered : {line}']
 
print["Program Exited"]

đầu ra

import sys

for line in sys.stdin:
    print[line]
0

Trong ví dụ này, chúng tôi sử dụng 'sys. hàm stdin’ gọi nội bộ hàm ‘input[]’. Hơn nữa, 'sys. stdin' nhận đầu vào dòng mới sau mỗi câu. Ngoài ra, chúng tôi đã sử dụng chức năng 'rstrip[]' để kiểm tra xem người dùng đã nhập Thoát dưới dạng chuỗi đầu vào hay chưa. Nếu người dùng nhập Thoát làm đầu vào, nó sẽ dừng chương trình. Hơn nữa, 'sys. stdin’ phân biệt chữ hoa chữ thường, vì vậy chuỗi bạn đặt làm chuỗi thoát cũng phải khớp với chuỗi đầu vào theo trường hợp

Đọc đầu vào từ Stdin bằng mô-đun Fileinput

Mô-đun Fileinput có thể đọc và ghi nhiều tệp từ stdin. Nó lấy các tệp làm đối số và trả về văn bản có trong đó. Ngoài ra, bạn cũng có thể đọc và ghi các định dạng tệp khác. Một lần nữa, hãy hiểu cách sử dụng và cú pháp của mô-đun này

import sys

for line in sys.stdin:
    print[line]
1

đầu ra

import sys

for line in sys.stdin:
    print[line]
2

Ví dụ này cho thấy một triển khai đơn giản của mô-đun fileinput trong đó chúng tôi sử dụng 'fileinput. input[]' để đọc đầu vào stdin. Hơn nữa, nếu bạn muốn biết cách đọc từng dòng tệp, hãy xem bài đăng này

Đọc dữ liệu đầu vào nhị phân từ Stdin

Đôi khi bạn có thể yêu cầu đọc một tệp chứa dữ liệu nhị phân. Bạn có thể sử dụng ba mô-đun cạnh nhau để đọc stdin ở dạng nhị phân. Ba mô-đun sau đây là os, sys và msvcrt. Để hiểu cách đọc dữ liệu nhị phân từ stdin, hãy xem một ví dụ

import sys

for line in sys.stdin:
    print[line]
3

đầu ra

import sys

for line in sys.stdin:
    print[line]
4

Chúng tôi sử dụng ba mô-đun để đọc tệp nhị phân từ đầu vào tiêu chuẩn mô-đun sys được sử dụng để lấy stdin, mô-đun os được sử dụng để đọc tệp ở định dạng nhị phân và cuối cùng mô-đun msvcrt được sử dụng để đặt chế độ dịch đầu dòng cho

hệ thống. readline Đọc từ Stdin

'hệ thống. readline[]’ là một chức năng được cung cấp bởi mô-đun sys. Nó có thể đọc các dòng từ luồng stdin. Ngoài ra, chức năng này có thể đọc ký tự thoát. Hơn nữa, chúng ta cũng có thể thiết lập tham số để đọc các ký tự, nghĩa là chúng ta có thể thiết lập chức năng để đọc một lượng ký tự cụ thể từ đầu vào. Hãy để chúng tôi xem một ví dụ để xem làm thế nào chúng ta có thể sử dụng chức năng này

import sys

for line in sys.stdin:
    print[line]
5

đầu ra

import sys

for line in sys.stdin:
    print[line]
6

Như bạn có thể thấy trong đầu vào, có một khoảng trắng sau “Xin chào”, hàm readline xác định ký tự thoát đó và in nó. Hơn nữa trong đầu vào-hai, tham số để đọc các ký tự được đặt thành bốn. Do đó, nó chỉ đọc bốn ký tự từ đầu vào

Phổ biến bây giờ

5 cách dễ dàng để sử dụng ast. literal_eval[] và chức năng của nó

Đọc đầu vào từ dòng Stdin theo dòng

Bạn cũng có thể đọc đầu vào từ stdin từng dòng. Để đạt được điều này, bạn có thể sử dụng mô-đun sys và 'sys. tiêu chuẩn. chức năng readlines[]'

write your input: Hello world
Hello world
0

Đoạn mã trên cho thấy cách bạn có thể sử dụng 'sys. tiêu chuẩn. readlines[]’ và cách xác định cú pháp của nó

Đọc Stdin cho đến ký tự cụ thể

Đôi khi bạn có thể muốn đọc đầu vào tiêu chuẩn cho đến một ký tự cụ thể, chẳng hạn như bất kỳ số nguyên hoặc chuỗi cụ thể nào, để thực hiện điều đó. Bạn có thể sử dụng mô-đun sys và tạo vòng lặp kết thúc khi chúng tôi nhập một ký tự cụ thể. Hãy lấy một ví dụ để hiểu điều này

write your input: Hello world
Hello world
1

Đầu ra;

write your input: Hello world
Hello world
2

Như bạn có thể thấy trong ví dụ này, mã của chúng tôi đọc đầu vào cho đến khi chúng tôi nhập ký tự -2 và in đầu ra lên đến ký tự trước đó của -2

Phổ biến bây giờ

Thay đổi kích thước Widget dễ dàng bằng PyQt5 trong Python

Câu hỏi thường gặp về Python Đọc đầu vào từ Stdin

Những gì được đọc từ stdin?

Stdin là đầu vào tiêu chuẩn. Đọc từ đầu vào tiêu chuẩn có nghĩa là gửi dữ liệu đến một luồng được chương trình sử dụng. Nó là một bộ mô tả tệp trong Python

Làm cách nào để đọc tệp văn bản từ stdin bằng Python?

Bạn có thể sử dụng mô-đun fileinput và sử dụng fileinput. chức năng nhập để đọc một hoặc nhiều tệp văn bản cùng một lúc

Làm cách nào để nhận đầu vào stdin?

Để đọc từ stdin, bạn có thể sử dụng một trong ba phương pháp. hệ thống. hàm stdin, 'input[]' hoặc mô-đun fileinput

Làm cách nào để đọc các ký tự thoát trong Python?

Bạn có thể sử dụng 'sys. readline[]’ để đọc các ký tự thoát và hơn nữa, bạn cũng có thể xác định tham số để đọc các ký tự

Phần kết luận

Cuối cùng, chúng tôi có thể kết luận rằng có nhiều cách bạn có thể đọc đầu vào từ đầu vào tiêu chuẩn [stdin]. Bạn có thể sử dụng bất kỳ phương pháp nào theo yêu cầu của bạn đối với chương trình. Hơn nữa, bạn có thể sử dụng các phương pháp này và phát triển logic của riêng mình vì bạn có thể sử dụng các chức năng chúng ta đã thảo luận một cách sáng tạo và hiệu quả để đạt được kết quả mong muốn

Việc sử dụng SYS stdin là gì?

sys. stdin có thể được sử dụng để nhận đầu vào trực tiếp từ dòng lệnh . Nó được sử dụng cho đầu vào tiêu chuẩn. Nó gọi nội bộ phương thức input[].

Sự khác biệt giữa SYS argv và SYS stdin là gì?

STDIN - từ đó bạn sẽ lấy dữ liệu đầu vào [các trường hợp thử nghiệm] cho chương trình của mình. sys. argv - đối số được cung cấp cho chương trình khi chạy chương trình .

SYS stdin readline có nhanh hơn đầu vào không?

Đầu vào = sys. stdin. readline thực sự dành cho Đầu vào nhanh hơn , bởi vì đọc dòng qua Hệ thống STDIN [Đầu vào tiêu chuẩn] nhanh hơn trong Python.

Đường đọc SYS stdin là gì?

stdin. readline[] Stdin là viết tắt của đầu vào tiêu chuẩn, là luồng mà chương trình đọc dữ liệu đầu vào của nó . Phương thức này hơi khác so với phương thức input[] vì nó cũng đọc ký tự thoát do người dùng nhập vào.

Chủ Đề