Cách đọc từ stdin bằng Python

How Read From Stdin Python



Lấy đầu vào từ người dùng là một phần quan trọng của bất kỳ ngôn ngữ lập trình nào. Đầu ra của nhiều chương trình phụ thuộc vào đầu vào tiêu chuẩn. Cách lấy đầu vào từ người dùng là khác nhau đối với các ngôn ngữ lập trình khác nhau. Có nhiều cách tồn tại trong python để đọc từ đầu vào chuẩn. Các hàm input () là cách phổ biến nhất là đọc từ đầu vào chuẩn, là một chức năng được tích hợp sẵn. Các sys.stdin là một cách khác là đọc từ đầu vào tiêu chuẩn các cuộc gọi hàm input () trong nội bộ. Python có một mô-đun khác có tên fileinput để đọc đầu vào chuẩn. Các hàm input () của mô-đun này có thể được sử dụng để đọc đầu vào chuẩn hoặc đọc nội dung từ một hoặc nhiều tệp. Các cách khác nhau để đọc từ đầu vào chuẩn trong Python đã được giải thích trong hướng dẫn này.

Exampe-1: Đọc dữ liệu từ stdin bằng cách sử dụng hàm input ()

Hàm input () là hàm được sử dụng nhiều nhất để lấy đầu vào từ người dùng. Tạo tệp python bằng tập lệnh sau để nhận đầu vào từ người dùng cho đến khi nhấn phím ‘n’. Ở đây, một vòng lặp vô hạn được tạo ra bằng cách sử dụng vòng lặp while. Hàm input () đầu tiên được sử dụng để lấy dữ liệu từ người dùng và hàm print () được sử dụng để in giá trị đầu vào. Tiếp theo, hàm input () của script được sử dụng để yêu cầu người dùng tiếp tục tác vụ một lần nữa hoặc thoát khỏi script. Nếu người dùng nhấn ‘n’ hoặc ‘N’, sự lặp lại của vòng lặp sẽ bị dừng lại bởi câu lệnh break; nếu không, vòng lặp sẽ lặp lại một lần nữa và lấy đầu vào khác từ người dùng. Hàm upper () được sử dụng trong script để viết hoa giá trị do người dùng cung cấp.







# Xác định một vòng lặp vô hạn

trong khi Thật:

# Nhận đầu vào từ người dùng

inputVal= đầu vào('Nhập bất kỳ văn bản nào: ')

# In giá trị đầu vào

in('Giá trị đầu vào là% s'%(inputVal))

# Yêu cầu lặp lại tiếp theo

nextInput= đầu vào('Bạn có muốn tiếp tục? (Y / N) ')

# Chấm dứt khỏi vòng lặp nếu nhấn 'n'

nếu nhưnextInput.phía trên() == 'N':

nghỉ

# In thông báo chấm dứt

in('Chương trình đã chấm dứt.')

Đầu ra:

Kết quả tương tự sau đây sẽ xuất hiện sau khi thực hiện tập lệnh trên. Ở đây, ' LinuxHint ‘Đã cho làm giá trị đầu vào đầu tiên và kết thúc từ tập lệnh để nhấn ký tự,‘ n ’.





Ví dụ-2: Đọc dữ liệu từ stdin bằng cách sử dụng sys.stdin

Các sys.stdin là một tùy chọn khác của Python để lấy đầu vào tiêu chuẩn từ người dùng từ thiết bị đầu cuối. Nó gọi hàm input () trong nội bộ và thêm ‘ ‘Sau khi lấy đầu vào. Tạo một tệp python với tập lệnh sau để kiểm tra việc sử dụng sys.stdin để lấy đầu vào tiêu chuẩn. Ở đây, vòng lặp ‘for-in’ được sử dụng để lấy đầu vào từ người dùng với thời gian vô hạn cho đến khi người dùng muốn kết thúc tập lệnh. Sau khi in giá trị đầu vào, hàm input () được sử dụng để yêu cầu người dùng dừng tập lệnh hay không. Tập lệnh sẽ bị chấm dứt nếu người dùng nhấn ‘ ' hoặc ' ‘. Các hàm upper () ở đây cũng được sử dụng để viết hoa giá trị đầu vào.





# Nhập mô-đun hệ thống

nhập khẩu sys


in('Nhập văn bản bất kỳ:')


# Lấy đầu vào bằng stdin

inputValtrong sys.stdin:

# In giá trị đầu vào

in('Giá trị đầu vào là:% s'% inputVal)


# Yêu cầu lặp lại tiếp theo

nextInput= đầu vào('Bạn có muốn chấm dứt? (Y / N) ')

# Chấm dứt khỏi vòng lặp nếu nhấn 'y / Y'

nếu nhưnextInput.dải().phía trên() == 'VÀ':

nghỉ

khác:

in('Nhập văn bản bất kỳ:')

Đầu ra:

Kết quả tương tự sau đây sẽ xuất hiện sau khi thực hiện tập lệnh trên. Ở đây, ' Lập trình Python ‘Đã cho làm giá trị đầu vào đầu tiên và kết thúc từ tập lệnh để nhấn ký tự,‘ y ’.



Ví dụ-3: Đọc dữ liệu từ stdin bằng cách sử dụng fileinput

Fileinput là một mô-đun khác của Python để lấy đầu vào tiêu chuẩn. Các dòng văn bản có thể được lấy từ thiết bị đầu cuối hoặc một tệp bằng cách sử dụng fileinput.input () . Nếu không có giá trị đối số nào được cung cấp trong hàm này, nó sẽ lấy đầu vào từ thiết bị đầu cuối và nếu tên của tệp hiện có được cung cấp làm giá trị đối số, nó sẽ lấy đầu vào từ tệp. Tạo tệp python bằng tập lệnh sau để lấy đầu vào chuẩn từ thiết bị đầu cuối. Ở đây, vòng lặp ‘for-in’ được sử dụng làm ví dụ trước đó để lấy đầu vào trong thời gian vô hạn cho đến khi người dùng muốn kết thúc tập lệnh. Tiếp theo, hàm input () được sử dụng để hỏi người dùng có dừng tập lệnh hay không. Tập lệnh sẽ bị chấm dứt nếu người dùng nhập ‘Bỏ’ hoặc ‘Thoát’ hoặc ‘QUIT’ . Các hàm upper () ở đây cũng được sử dụng để viết hoa giá trị đầu vào. Các hàm dải () được sử dụng để loại bỏ các khoảng trắng thừa ở cả hai phía của giá trị đầu vào.

# Nhập mô-đun đầu vào tệp

nhập khẩu fileinput


in('Nhập văn bản:')

'' '

Nhận đầu vào bằng cách sử dụng hàm fileinput.input () và

nhấn ctrl + D để hoàn tất việc lấy giá trị đầu vào

'' '


inputValtrong fileinput.đầu vào():

# Chấm dứt khỏi vòng lặp nếu gõ 'thoát'

nếu nhưinputVal.dải().phía trên() == 'TỪ BỎ':

nghỉ


# In giá trị đầu vào

in('Giá trị đầu vào là:',inputVal)

in('Nhập văn bản:')

Đầu ra:

Kết quả tương tự sau đây sẽ xuất hiện sau khi thực hiện tập lệnh trên. Ở đây, ‘Tìm hiểu python từ LinuxHint.com’ đã cung cấp giá trị đầu vào đầu tiên và kết thúc từ tập lệnh để nhập từ, ‘bỏ’. Bạn phải nhớ một điều khi lấy đầu vào từ thiết bị đầu cuối bằng cách sử dụng fileinput mô-đun. Tức là bạn phải nhấn ctrl + d sau khi nhập dữ liệu đầu vào.

Bạn phải cung cấp tên tệp làm giá trị đối số của fileinput.input () chức năng nếu bạn muốn lấy dữ liệu từ tệp thay vì thiết bị đầu cuối.

Phần kết luận:

Ba cách khác nhau để lấy đầu vào từ thiết bị đầu cuối đã được chỉ ra trong hướng dẫn này bằng cách sử dụng ba ví dụ đơn giản. Không cần mô-đun để sử dụng hàm input () để lấy đầu vào. Mô-đun sys được yêu cầu nhập để sử dụng sys.stdin , và mô-đun đầu vào tệp được yêu cầu nhập khẩu để sử dụng fileinput.input () trong tập lệnh để lấy đầu vào chuẩn. Tôi hy vọng người dùng Python sẽ lấy đầu vào tiêu chuẩn dựa trên yêu cầu của họ sau khi đọc hướng dẫn này.