Làm thế nào để bạn viết vào thiết bị xuất chuẩn trong python?

Hàm

Hallo
6 của Python thường được sử dụng để hiển thị văn bản trong dòng lệnh hoặc trong trình thông dịch tương tác, tùy thuộc vào cách chương trình Python được thực thi. Tuy nhiên, chúng ta có thể thay đổi hành vi của nó để ghi văn bản vào tệp thay vì vào bảng điều khiển

Trong bài viết này, chúng ta sẽ xem xét nhiều cách chúng ta có thể ghi vào tệp bằng hàm

Hallo
6

Chuyển hướng đầu ra tập lệnh của Python trong Terminal

Cách nhanh chóng và bẩn thỉu để chuyển hướng đầu ra của tập lệnh Python là trực tiếp từ dòng lệnh trong khi thực thi tập lệnh

Ví dụ: nếu chúng tôi có tệp Python có tên

Hallo
1 với nội dung sau

Chúng ta có thể chuyển hướng đầu ra của tệp trong trình bao bằng cách sử dụng một dấu ngoặc đơn bên phải

$ python3 hello.py > output.txt

Nếu chúng tôi mở

Hallo
2 mới tạo của mình, chúng tôi sẽ thấy các nội dung sau

Hallo

Tuy nhiên, với phương pháp này, tất cả đầu ra của tập lệnh được ghi vào một tệp. Việc thực hiện chuyển hướng này từ bên trong tập lệnh Python thường linh hoạt hơn

Chuyển hướng luồng đầu ra tiêu chuẩn

Trong Python, hàm

Hallo
6 linh hoạt hơn bạn nghĩ. Nó không được mã hóa cứng theo cách chỉ có thể ghi văn bản được chỉ định vào màn hình. Thay vào đó, nó gửi văn bản đến một vị trí được gọi là luồng đầu ra tiêu chuẩn, còn được gọi là
Hallo
4

Tất cả các hệ thống UNIX có ba đường ống chính - đường ống đầu vào tiêu chuẩn (

Hallo
5), đường ống đầu ra tiêu chuẩn (
Hallo
4) và đường ống lỗi tiêu chuẩn (
Hallo
7)

Theo mặc định, đường ống đầu ra tiêu chuẩn trỏ đến cửa sổ tương tác được sử dụng để thực thi chương trình, vì vậy chúng ta thường thấy văn bản được in ra trên màn hình. Tuy nhiên, đầu ra tiêu chuẩn có thể được chuyển hướng đến các vị trí khác, chẳng hạn như tệp, để thuận tiện

Nếu đầu ra tiêu chuẩn được chuyển hướng đến một tệp cụ thể, văn bản được chỉ định trong hàm

Hallo
6 sẽ được ghi vào tệp đó thay vì được hiển thị trên màn hình

Trong Python, có thể lấy tham chiếu đến đầu ra tiêu chuẩn bằng cách sử dụng đối tượng

Hallo
4 của mô-đun
$ python3 printToFile.py
0. Nó là một đối tượng giống như tệp, nghĩa là nó có các phương thức cho phép Python đọc và ghi từ nó giống như một tệp thực tế

Hãy xem một ví dụ nơi chúng tôi thay đổi

Hallo
4 thành một tệp

Hàm

Hallo
6 lấy đối số chuỗi được cung cấp, nối một ký tự xuống dòng vào cuối và gọi phương thức
$ python3 printToFile.py
3 để ghi nó vào đầu ra tiêu chuẩn

Trong ví dụ trên, đầu tiên chúng ta in một dòng văn bản như chúng ta đã quen, dòng này sẽ được hiển thị trong bảng điều khiển khi chúng ta chạy tệp. Sau đó, chúng tôi đã gán lại

Hallo
4 cho đối tượng tệp tùy chỉnh của mình -
$ python3 printToFile.py
5. Vì một đối tượng tệp có phương thức
$ python3 printToFile.py
6 hoàn toàn hợp lệ, nên giá trị in của chúng tôi được ghi vào tệp mà không gặp sự cố

Lưu ý rằng nên lưu trữ giá trị ban đầu của đầu ra tiêu chuẩn trong một biến trước khi thay đổi nó. Bằng cách này, chúng tôi có thể đặt lại đầu ra tiêu chuẩn về giá trị ban đầu sau khi hoàn tất, điều này có thể giúp tránh nhầm lẫn

Hãy lưu mã vào một tệp mới,

$ python3 printToFile.py
7. Và sau đó, hãy thực hiện nó

$ python3 printToFile.py

Chúng ta sẽ thấy đầu ra sau trong Terminal

$ python3 hello.py > output.txt
7

Và đoạn script sẽ tạo một file mới có tên là

$ python3 printToFile.py
8 với nội dung như sau

Hãy xem hướng dẫn thực hành, thực tế của chúng tôi để học Git, với các phương pháp hay nhất, tiêu chuẩn được ngành chấp nhận và bao gồm bảng gian lận. Dừng các lệnh Git trên Google và thực sự tìm hiểu nó

$ python3 hello.py > output.txt
9

Bạn đã chuyển hướng thành công dữ liệu từ luồng đầu ra tiêu chuẩn sang một tệp. Hãy xem cách chúng ta có thể làm điều này với một đối tượng giống như tệp phổ biến khác dành riêng cho các lỗi lập trình

Chuyển hướng luồng lỗi tiêu chuẩn

Trong Python, các lỗi được ghi vào luồng lỗi tiêu chuẩn, còn được gọi là

Hallo
7. Điều này cũng mặc định cho cửa sổ tương tác nhưng có thể thay đổi thông qua đối tượng
$ python3 hello.py > output.txt
70. Nếu chúng tôi muốn in các giá trị tới
Hallo
7, chúng tôi chỉ cần chuyển hướng
$ python3 hello.py > output.txt
72 để trỏ tới
$ python3 hello.py > output.txt
70

Tạo một tệp có tên

$ python3 hello.py > output.txt
74 và thêm đoạn mã sau

Ví dụ này gần giống với ví dụ trước, ngoại trừ việc thay vì chuyển hướng luồng đầu ra tiêu chuẩn tới một tệp, chúng tôi chuyển hướng nó tới luồng lỗi tiêu chuẩn. Nếu luồng lỗi tiêu chuẩn cũng được chuyển hướng đến một nơi khác, đầu ra sẽ được gửi đến vị trí đó thay vì màn hình

Hãy chạy tập tin này

Hallo
6

đầu ra của chúng tôi sẽ hiển thị

Hallo
7

Mặc dù nó có thể xuất hiện giống như đầu ra thông thường đối với chúng tôi, nhưng đối với máy tính, nó được hiển thị thông qua các đường ống khác nhau

In bằng tham số "tệp"

Trong các ví dụ trước, chúng tôi đã chuyển hướng rõ ràng đầu ra tiêu chuẩn sang một đối tượng giống như tệp khác bằng cách thay đổi đối tượng

Hallo
4. Tuy nhiên, để thuận tiện, chúng ta có thể thực hiện việc này trực tiếp từ bên trong hàm
Hallo
6 bằng cách chỉ định vị trí đầu ra với tham số
$ python3 hello.py > output.txt
77

Ví dụ: nếu chúng tôi muốn in trực tiếp vào một tệp mà không thay đổi toàn bộ tập lệnh của

Hallo
4, chúng tôi sẽ viết

Hallo
1

Vì chúng tôi không loay hoay với việc chuyển hướng đầu ra tiêu chuẩn một cách rõ ràng, nên chúng tôi không còn phải đặt lại nó về giá trị ban đầu. Do đó, đây là cách ưa thích để ghi vào tệp có hàm

Hallo
6

Ghi chú. Mặc dù tên của tham số là

$ python3 hello.py > output.txt
77, hãy nhớ rằng nó hoạt động với mọi đối tượng giống như tệp. Ví dụ, nếu bạn muốn in thành
Hallo
7, bạn sẽ thay đổi câu lệnh
Hallo
6 thành

Hallo
4

Sự kết luận

Trong bài viết này, chúng ta đã thảo luận về việc chuyển hướng đầu ra hàm

Hallo
6 của Python bằng nhiều phương thức khác nhau. Các phương thức này bao gồm chuyển hướng đầu ra của tập lệnh Python từ dòng lệnh, chuyển hướng đầu ra tiêu chuẩn trong tập lệnh Python và chỉ định trực tiếp một đối tượng dạng tệp trong tham số
$ python3 hello.py > output.txt
77 trong hàm
Hallo
6

Bài viết này được viết bởi Jacob Stopak, một nhà phát triển phần mềm và nhà tư vấn với niềm đam mê giúp đỡ người khác cải thiện cuộc sống của họ thông qua mã. Jacob là tác giả của Coding Essentials Guidebook for Developers, một cuốn sách giới thiệu bao gồm các khái niệm và công cụ mã hóa thiết yếu. Nó chứa các chương về kiến ​​trúc máy tính cơ bản, Internet, Dòng lệnh, HTML, CSS, JavaScript, Python, Java, cơ sở dữ liệu/SQL, Git, v.v.

Bản in Python có ghi vào thiết bị xuất chuẩn không?

Trong Python, bất cứ khi nào chúng ta sử dụng print(), văn bản sẽ được ghi vào sys của Python. stdout , bất cứ khi nào input() được sử dụng, nó sẽ đến từ sys. stdin và bất cứ khi nào ngoại lệ xảy ra, nó được ghi vào sys.

Bản in có đi đến thiết bị xuất chuẩn không?

Thông thường, câu lệnh in được in ra thiết bị xuất chuẩn hoặc thiết bị đầu cuối/màn hình của bạn. Bạn có thể chuyển hướng điều này để việc in được thực hiện thành một tệp chẳng hạn. Điều này có thể hữu ích nếu bạn sử dụng câu lệnh in để gỡ lỗi và sau đó muốn lưu nội dung được in vào một tệp.

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.