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 Show
Cách chuyển hướng thiết bị xuất chuẩn & thiết bị xuất chuẩn sang tệp trong PythonTrong 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 inprint(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ụ
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 Pythonví dụ 1
ví dụ 2$ python3 foo.py > op.txt3
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 |