Làm cách nào để chuyển hướng đầu ra python sang tệp?

Stdout được python sử dụng để hiển thị đầu ra văn bản của các lệnh mà bạn chạy trên thiết bị đầu cuối hoặc trong tập lệnh python. Stderr được gọi khi có bất kỳ lỗi nào trong khi chạy lệnh của bạn. Đây cũng là trường hợp bất cứ khi nào bạn chạy bất kỳ lệnh nào khác, không chỉ python và bất kỳ tập lệnh nào khác, chẳng hạn như tập lệnh shell, trong thiết bị đầu cuối. Vấn đề là một khi các thông báo thiết bị xuất chuẩn và thiết bị xuất chuẩn này được hiển thị, chúng không thể được truy xuất lại sau này để tham khảo trong tương lai. Các lệnh/tập lệnh tiếp theo sẽ đẩy chúng ra khỏi màn hình. Trong những trường hợp như vậy, nên chuyển hướng thiết bị xuất chuẩn & thiết bị xuất chuẩn sang tệp trong Python. Trong bài viết này, chúng ta sẽ tìm hiểu cách làm điều này khi bạn sử dụng python


Cách chuyển hướng thiết bị xuất chuẩn & thiết bị xuất chuẩn sang tệp trong Python

Trong trăn, sys. thiết bị xuất chuẩn chứa đầu ra mới nhất của thiết bị xuất chuẩn và sys. stderr chứa đầu ra stderr

Một trong những cách để chuyển hướng các đầu ra này sang tệp là đặt chúng thành một đối tượng tệp như hình bên dưới. Sử dụng phương pháp này nếu bạn muốn chuyển hướng đầu ra từ bên trong tập lệnh

import sys
with open['file', 'w'] as sys.stdout:
    print['test']

Ngoài ra, bạn có thể chuyển hướng đầu ra sang một tệp [e. g. tùy tùng. txt] bằng cách sử dụng chuyển hướng shell

$ python3 foo.py > op.txt

Tương tự bạn cũng có thể set stderr thành file như hình bên dưới. Nếu nó không hiệu quả với bạn, vui lòng thử phương pháp tiếp theo được đề cập bên dưới

import sys
with open['file', 'w'] as sys.stderr:
    print['test']

Nếu bạn đang sử dụng python>3. 4, bạn có thể sử dụng contextlib. redirect_stderr để chuyển hướng đầu ra stderr sang tệp. Đây là một ví dụ

from contextlib import redirect_stderr

with open['filename.log', 'w'] as stderr, redirect_stderr[stderr]:

    print[1/0]    # errors from here are logged to the file.

Trong ví dụ trên, chúng tôi đã cố tình đưa ra một ngoại lệ bằng cách chia 1 cho 0. Thông báo lỗi được ghi vào tên tệp. tệp nhật ký

Không giống như chuyển hướng thiết bị xuất chuẩn sang tệp, có một chút khó khăn khi gửi đầu ra thiết bị xuất chuẩn sang tệp do lỗi xảy ra thường làm hỏng quá trình thực thi mã. Vì vậy, nên sử dụng contextlib cho các mục đích như vậy

Trong bài viết này, chúng ta đã học cách chuyển hướng thiết bị xuất chuẩn và thiết bị xuất chuẩn sang tệp. Bạn có thể sử dụng chúng để ghi lại thông báo lỗi và đầu ra của các lệnh và tập lệnh python của bạn để tham khảo trong tương lai

Trong hướng dẫn này, chúng ta sẽ tìm hiểu cách chuyển hướng đầu ra bản in thành tệp văn bản trong Python. Nhưng trước khi đi xa hơn, chúng ta hãy xem chức năng in trong Python

Cú pháp hàm in

print[objects, sep=separator, end=end, file=filename, flush=flushvalue]

Từ cú pháp trên, chúng ta có thể thấy rằng hàm

import sys
with open['file', 'w'] as sys.stderr:
    print['test']
1 có tham số tệp. Theo giá trị mặc định của tham số tệp là
import sys
with open['file', 'w'] as sys.stderr:
    print['test']
2. Vì lý do này, bất cứ khi nào chúng tôi in bất cứ thứ gì, nó sẽ in trên đầu ra tiêu chuẩn

Thí dụ

# printing in the standard output
print["Rajkumar"]
Rajkumar

Trong đoạn mã trên, chúng tôi đã thấy rằng chúng tôi đã in “Rajkumar”, nó đã được in trên đầu ra tiêu chuẩn

Bây giờ, bằng cách sử dụng tham số tệp, chúng ta sẽ xem cách chuyển hướng đầu ra bản in sang tệp văn bản trong Python. Vì lý do này, chúng tôi phải mở tệp ở chế độ

import sys
with open['file', 'w'] as sys.stderr:
    print['test']
3 hoặc
import sys
with open['file', 'w'] as sys.stderr:
    print['test']
4. Nếu tệp không tồn tại, nó sẽ được tạo tự động

Ở đây chúng ta sẽ làm việc với file1. txt được đặt trong thư mục hiện tại nơi chúng tôi đang làm việc. Nội dung của tập tin1. txt được hiển thị bên dưới -

Ghi chú

Nếu chúng ta mở tệp ở chế độ

import sys
with open['file', 'w'] as sys.stderr:
    print['test']
3 thì tất cả nội dung trước đó của tệp sẽ bị xóa và nội dung mới sẽ được thêm vào từ vị trí bắt đầu. Nhưng nếu chúng ta mở tệp ở chế độ
import sys
with open['file', 'w'] as sys.stderr:
    print['test']
4 thì nội dung trước đó sẽ không bị xóa và nội dung mới sẽ được thêm vào sau nội dung trước đó

Cách chuyển hướng đầu ra in sang tệp văn bản trong Python

ví dụ 1

with open["file1.txt","w"] as fp:
    print["Rajkumar",file=fp]
  • Trong đoạn mã trên, chúng tôi đã mở
    # printing in the standard output
    print["Rajkumar"]
    1 ở chế độ
    import sys
    with open['file', 'w'] as sys.stderr:
        print['test']
    3 và lưu trữ đối tượng tệp trong biến
    # printing in the standard output
    print["Rajkumar"]
    3. Vì tệp được mở ở chế độ
    import sys
    with open['file', 'w'] as sys.stderr:
        print['test']
    3 nên tất cả nội dung trước đó sẽ bị xóa.
  • Sau đó, chúng tôi đã in
    # printing in the standard output
    print["Rajkumar"]
    5 trong tệp chỉ định tham số
    # printing in the standard output
    print["Rajkumar"]
    6 là
    # printing in the standard output
    print["Rajkumar"]
    3

ví dụ 2

$ python3 foo.py > op.txt
3
  • Trong đoạn mã trên, chúng tôi đã mở
    # printing in the standard output
    print["Rajkumar"]
    1 ở chế độ
    import sys
    with open['file', 'w'] as sys.stderr:
        print['test']
    4 và lưu trữ tệp-đối tượng trong biến
    # printing in the standard output
    print["Rajkumar"]
    3. Vì tệp được mở ở chế độ
    import sys
    with open['file', 'w'] as sys.stderr:
        print['test']
    4 nên nội dung trước đó không bị xóa.
  • Sau đó, chúng tôi đã in
    # printing in the standard output
    print["Rajkumar"]
    5 trong tệp chỉ định tham số
    # printing in the standard output
    print["Rajkumar"]
    6 là
    # printing in the standard output
    print["Rajkumar"]
    3
  • Vì giá trị mặc định của tham số
    Rajkumar
    5 là
    Rajkumar
    6 nên nội dung mới được thêm vào dòng tiếp theo

Cảm ơn bạn đã đọc bài viết này. Nếu bạn thích nó Hãy chia sẻ bài viết. Nếu bạn muốn nói gì hãy Comment

Làm cách nào để bạn chuyển hướng đầu ra từ thiết bị xuất chuẩn sang một tệp trong Python?

cách dễ nhất để chuyển hướng thiết bị xuất chuẩn trong python là chỉ cần gán cho nó một đối tượng tệp đang mở . chúng ta hãy xem một ví dụ đơn giản. nhập sys def redirect_to_file[văn bản]. ban đầu = hệ thống. hệ thống thiết bị xuất chuẩn.

Làm cách nào để lưu đầu ra dấu nhắc lệnh vào tệp văn bản trong Python?

Để lưu đầu ra lệnh vào tệp văn bản bằng Dấu nhắc Lệnh, hãy làm theo các bước sau. .
Mở bắt đầu
Tìm kiếm Dấu nhắc Lệnh
Bấm chuột phải vào kết quả trên cùng và chọn tùy chọn Chạy với tư cách quản trị viên
Nhập lệnh sau để lưu đầu ra vào tệp văn bản và nhấn Enter. LỆNH CỦA BẠN > C. \PATH\TO\FOLDER\OUTPUT. txt

Chủ Đề