Stdin trong Python là gì?

Trong số các hệ điều hành phổ biến, chúng đều được chuẩn hóa về việc sử dụng đầu vào tiêu chuẩn, đầu ra tiêu chuẩn và lỗi tiêu chuẩn với các bộ mô tả tệp lần lượt là 0, 1 và 2. Điều này cho phép bạn chuyển các đầu vào và đầu ra đến các vị trí khác nhau. Hãy xem cách sử dụng đầu vào, đầu ra và lỗi tiêu chuẩn trong Python

Để tìm hiểu thêm về đường ống, chuyển hướng, stdin, stdout và stderr nói chung, hãy xem hướng dẫn của tôi STDIN, STDOUT, STDERR, Piping và Redirecting

sử dụng cơ bản

Trong Python,

python myapp.py > output.txt
2,
python myapp.py > output.txt
3 và
python myapp.py > output.txt
4 là các đối tượng giống như tệp có thể thực hiện các hoạt động dự kiến ​​như
python myapp.py > output.txt
5 và
python myapp.py > output.txt
6. Hãy xem cách sử dụng các đối tượng này. Tham khảo tài liệu gói sys chính thức để biết thông tin đầy đủ

đầu ra tiêu chuẩn

đầu ra tiêu chuẩn

python myapp.py > output.txt
7 về cơ bản là một phím tắt cho
python myapp.py > output.txt
8

import sys

# Standard output - sys.stdout
print[type[sys.stdout]]
sys.stdout.write['Hello\n']

python myapp.py > output.txt
3 là một đối tượng
# Standard error - sys.stderr
print[type[sys.stderr]]
sys.stderr.write["Error messages can go here\n"]
0 nên bạn có thể đọc và ghi vào chúng như một tệp thông thường. Xem để biết thêm chi tiết về lớp
# Standard error - sys.stderr
print[type[sys.stderr]]
sys.stderr.write["Error messages can go here\n"]
0

Để chuyển đầu ra của chương trình Python của bạn sang một tệp, bạn có thể thực hiện nó từ trình bao như thế này

python myapp.py > output.txt

lỗi tiêu chuẩn

Lỗi tiêu chuẩn hoạt động giống như đầu ra tiêu chuẩn và có thể được sử dụng theo cùng một cách. Lỗi tiêu chuẩn có bộ mô tả tệp

# Standard error - sys.stderr
print[type[sys.stderr]]
sys.stderr.write["Error messages can go here\n"]
2 trong đó đầu ra tiêu chuẩn có bộ mô tả tệp
# Standard error - sys.stderr
print[type[sys.stderr]]
sys.stderr.write["Error messages can go here\n"]
3. Điều này có lợi nếu bạn muốn tách các thông báo lỗi và cảnh báo khỏi đầu ra thực tế của ứng dụng của mình. Ví dụ: nếu chương trình của bạn xuất ra một tệp XML, bạn không muốn các chuỗi lỗi được chèn vào giữa tệp XML của mình

# Standard error - sys.stderr
print[type[sys.stderr]]
sys.stderr.write["Error messages can go here\n"]

Để chuyển lỗi tiêu chuẩn từ trình bao sang tệp trong khi để đầu ra tiêu chuẩn chuyển đến thiết bị đầu cuối

python myapp.py > output.txt
5

Để đưa lỗi tiêu chuẩn vào đầu ra tiêu chuẩn, bạn có thể làm

python myapp.py > output.txt
6

đầu vào tiêu chuẩn

Đầu vào tiêu chuẩn mặc định cho bàn phím của bạn trong thiết bị đầu cuối, nhưng bạn cũng có thể chuyển các tệp hoặc đầu ra từ chương trình trước sang đầu vào tiêu chuẩn của mình. Đây là một ví dụ cơ bản về việc đọc một byte từ đầu vào tiêu chuẩn

python myapp.py > output.txt
7

Nếu bạn muốn đầu vào tương tác từ người dùng, tốt hơn nên sử dụng

# Standard error - sys.stderr
print[type[sys.stderr]]
sys.stderr.write["Error messages can go here\n"]
4 thay vì
# Standard error - sys.stderr
print[type[sys.stderr]]
sys.stderr.write["Error messages can go here\n"]
5 khi yêu cầu đầu vào của người dùng, nhưng
# Standard error - sys.stderr
print[type[sys.stderr]]
sys.stderr.write["Error messages can go here\n"]
6 có thể hữu ích để đọc tệp được dẫn từ trình bao như thế này

python myapp.py > output.txt
1

Để chuyển đầu ra tiêu chuẩn của một chương trình sang đầu vào tiêu chuẩn của chương trình Python của bạn, bạn có thể làm như thế này

python myapp.py > output.txt
2

thuộc tính của Dunder. hệ thống. __stdin__, hệ thống. __stdout__, hệ thống. __stderr__

Các thuộc tính dunder

# Standard error - sys.stderr
print[type[sys.stderr]]
sys.stderr.write["Error messages can go here\n"]
7,
# Standard error - sys.stderr
print[type[sys.stderr]]
sys.stderr.write["Error messages can go here\n"]
8 và
# Standard error - sys.stderr
print[type[sys.stderr]]
sys.stderr.write["Error messages can go here\n"]
9 luôn chứa các tham chiếu đến các luồng ban đầu. Nếu bạn gán lại
python myapp.py > output.txt
3 để trỏ đến một nơi khác như đối tượng StringIO, bạn luôn có thể gán nó trở lại giá trị ban đầu bằng cách sau

Thay đổi

python myapp.py > output.txt
3 thành đối tượng
python myapp.py > output.txt
52 có thể hữu ích đặc biệt khi kiểm tra đơn vị. Hãy xem hướng dẫn của tôi Python Sử dụng StringIO để chụp STDOUT và STDERR

python myapp.py > output.txt
9

tập tin đầu vào. phím tắt đầu vào []

Hàm này sẽ trả về đầu vào tiêu chuẩn được phân tách theo dòng hoặc nếu tên tệp được cung cấp dưới dạng đối số dòng lệnh, thì hàm này sẽ cung cấp tất cả các dòng từ các tệp được cung cấp. Nó tương tự như

python myapp.py > output.txt
53 trong Ruby. Điều này cung cấp cho bạn tùy chọn chuyển một tệp từ trình bao hoặc để cung cấp danh sách các đường dẫn tệp cho đầu vào

Ví dụ: bạn có thể nhập tệp qua đầu vào tiêu chuẩn hoặc cung cấp danh sách tên tệp làm đối số cho ứng dụng

python myapp.py > output.txt
1

Đây là một ví dụ về nó trong một kịch bản

python myapp.py > output.txt
0

Đây là cách bạn có thể chạy chương trình để chuyển các tệp hoặc cung cấp tên tệp

python myapp.py > output.txt
1

Phần kết luận

Sau khi đọc hướng dẫn này, bạn sẽ biết cách truy cập và đọc/ghi từ đầu vào tiêu chuẩn, đầu ra tiêu chuẩn và lỗi tiêu chuẩn trong Python. Bạn cũng nên biết cách sử dụng đối tượng

python myapp.py > output.txt
52 để lấy đầu ra và sử dụng hàm
python myapp.py > output.txt
55 để lấy dữ liệu

stdin được sử dụng để làm gì?

Thiết bị đầu vào tiêu chuẩn, còn được gọi là stdin , là thiết bị lấy đầu vào của hệ thống . Thông thường, đây là bàn phím, nhưng bạn có thể chỉ định đầu vào đó đến từ cổng nối tiếp hoặc tệp đĩa chẳng hạn.

Việc sử dụng stdin và stdout trong Python là gì?

stdin , stdout và stderr là các đối tượng tệp được xác định trước tương ứng với các luồng đầu vào, đầu ra và lỗi tiêu chuẩn của Python . Bạn có thể liên kết lại thiết bị xuất chuẩn và thiết bị xuất chuẩn với các đối tượng giống như tệp [các đối tượng cung cấp phương thức ghi chấp nhận đối số chuỗi] để chuyển hướng đích của thông báo lỗi và đầu ra.

Sự khác biệt giữa đầu vào và stdin trong Python là gì?

Stdin là viết tắt của đầu vào tiêu chuẩn, là luồng mà từ đó 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. Hơn nữa, phương pháp này cũng cung cấp tham số cho kích thước tôi. e. nó có thể đọc bao nhiêu ký tự cùng một lúc.

SYS stdin read[] trong Python là gì?

Nó sẽ đọc từng dòng của tệp nguồn . Nó được sử dụng rộng rãi trong Hệ thống thẩm phán trực tuyến. Ví dụ. giả sử chúng ta chỉ có một số 2 sẽ được sử dụng trong tệp. nhập sys nếu __name__ == "__main__". n = int[sys. tiêu chuẩn. dòng đọc []. strip[]] Đọc file từng dòng tức là đọc số 2 [trường hợp này chỉ đọc 1 dòng].

Chủ Đề