Python chuyển hướng thiết bị xuất chuẩn sang quy trình khác

Theo mặc định, đầu ra tiêu chuẩn được in ra bàn điều khiển. Tuy nhiên, bạn có thể chuyển hướng đầu ra đó sang một tệp bằng bất kỳ chức năng nào sau đây

1. chuyển hướng vỏ

Cách tiếp cận phổ biến nhất để chuyển hướng đầu ra tiêu chuẩn sang một tệp là sử dụng chuyển hướng shell. Ưu điểm của phương pháp này là nó không yêu cầu bất kỳ thay đổi mã nào. Đây là cách bạn có thể chuyển hướng đầu ra stdoutstderr sang một tệp bằng cách sử dụng toán tử >

1

2

$ trăn chính. py > tệp.

 

Tải xuống mã

2. Sử dụng sys.stdout

Một giải pháp đơn giản khác để chuyển hướng đầu ra tiêu chuẩn sang tệp là đặt sys.stdout thành đối tượng tệp, như minh họa bên dưới

1

2

3

4

5

6

nhập sys

 

đường dẫn = 'đường dẫn/đến/một số/dir/tệp. txt'

sys. stdout = mở[đường dẫn, 'w']

in['Xin chào thế giới']

 

Tải xuống mã

3. Sử dụng chức năng
$ cat music.mp3 > /dev/audio
1

Một tùy chọn khác là sử dụng hàm

$ cat music.mp3 > /dev/audio
1 trong Python 3. 4 thiết lập trình quản lý bối cảnh để chuyển hướng sys.stdout sang tệp khác. Đây là một ví dụ làm việc

1

2

3

4

5

6

7

nhập contextlib

 

đường dẫn = 'đường dẫn/đến/một số/dir/tệp. txt'

với mở[đường dẫn, 'w'] as f:

    với contextlib. redirect_stdout[f].

        in['Xin chào thế giới']‘ được sử dụng để chuyển hướng đầu ra [STDOUT]


Thí dụ.
ls -al > listings

Ở đây, đầu ra của lệnh ls -al được chuyển hướng đến tệp “danh sách” thay vì màn hình của bạn

Ghi chú. Sử dụng tên tệp chính xác trong khi chuyển hướng đầu ra lệnh sang một tệp. Nếu có một tệp hiện có cùng tên, lệnh được chuyển hướng sẽ xóa nội dung của tệp đó và sau đó nó có thể bị ghi đè. ”

Nếu bạn không muốn một tệp bị ghi đè mà muốn thêm nhiều nội dung hơn vào một tệp hiện có, thì bạn nên sử dụng toán tử ‘>>‘

Bạn có thể chuyển hướng đầu ra tiêu chuẩn, không chỉ tệp mà còn cả thiết bị

$ cat music.mp3 > /dev/audio

Lệnh cat đọc file nhạc. mp3 và gửi đầu ra tới/dev/audio là thiết bị âm thanh. Nếu cấu hình âm thanh trong PC của bạn là chính xác, lệnh này sẽ phát tệp nhạc. mp3

chuyển hướng đầu vào

Ký hiệu ‘errorsfile

Ở trên, chúng tôi đang thực hiện một chương trình có tên myprogram

Bộ mô tả tệp cho lỗi tiêu chuẩn là 2

Sử dụng “2>”, chúng tôi chuyển hướng đầu ra lỗi sang tệp có tên “errorfile”

Do đó, đầu ra của chương trình không bị lộn xộn với các lỗi

ví dụ 2

Đây là một ví dụ khác sử dụng câu lệnh find –

find . -name 'my*' 2>error.log


Sử dụng lệnh “find”, chúng tôi đang tìm kiếm “. ” thư mục hiện tại cho tệp có “tên” bắt đầu bằng “của tôi”

ví dụ 3. Hãy xem một ví dụ phức tạp hơn,

Quản trị viên máy chủ thường xuyên, liệt kê các thư mục và lưu trữ cả lỗi và đầu ra tiêu chuẩn vào một tệp, tệp này có thể được xử lý sau. Đây là lệnh

ls Documents ABC> dirlist 2>&1

Nơi đây,

  • ghi đầu ra từ tệp này sang đầu vào của tệp khác. 2>&1 có nghĩa là STDERR chuyển hướng đến mục tiêu của STDOUT [là danh sách thư mục tệp]
  • Chúng tôi đang chuyển hướng đầu ra lỗi sang đầu ra tiêu chuẩn, do đó đang được chuyển hướng lại đến tệp dirlist. Do đó, cả đầu ra được ghi vào tệp dirlist

Bản tóm tắt

  • Mỗi tệp trong Linux có một Bộ mô tả tệp tương ứng được liên kết với nó
  • Bàn phím là thiết bị đầu vào tiêu chuẩn trong khi màn hình của bạn là thiết bị đầu ra tiêu chuẩn
  • “>” là toán tử chuyển hướng đầu ra. “>>” nối đầu ra vào một tệp hiện có
  • “&”chuyển hướng đầu ra của tệp này sang tệp khác
  • Bạn có thể định hướng lại lỗi bằng cách sử dụng Bộ mô tả tệp 2 tương ứng của nó

Guru99 được tài trợ bởi Acunetix



Acunetix, nhà phát triển trình quét bảo mật ứng dụng web cực kỳ chính xác đã tài trợ cho dự án Guru99 để giúp quét hơn 4500 lỗ hổng web một cách chính xác và ở tốc độ cao nhất

Chủ Đề