Hướng dẫn log python output to text file - ghi đầu ra của python vào tệp văn bản

Tôi đã tìm kiếm Google, Stack Overflow và hướng dẫn người dùng Python của tôi và chưa tìm thấy câu trả lời đơn giản, khả thi cho câu hỏi.

Tôi đã tạo một tệp C: \ GOAT.TXT trên máy Windows 7 x64 và đang cố gắng in "Kiểm tra" vào tệp. Tôi đã thử những điều sau dựa trên các ví dụ được cung cấp trên StackOverflow:

Tại thời điểm này, tôi không muốn sử dụng mô -đun nhật ký vì tôi không hiểu từ tài liệu để tạo nhật ký đơn giản dựa trên điều kiện nhị phân. In là đơn giản tuy nhiên làm thế nào để chuyển hướng đầu ra là không rõ ràng.

Một ví dụ đơn giản, rõ ràng mà tôi có thể nhập vào bộ interter của mình là hữu ích nhất.

Ngoài ra, bất kỳ đề xuất nào cho các trang web thông tin đều được đánh giá cao (không phải Pydocs).

import sys
print('test', file=open('C:\\goat.txt', 'w')) #fails
print(arg, file=open('fname', 'w')) # above based upon this
print>>destination, arg

print>> C:\\goat.txt, "test" # Fails based upon the above

Hướng dẫn log python output to text file - ghi đầu ra của python vào tệp văn bản

wjandrea

25.1k8 Huy hiệu vàng53 Huy hiệu bạc73 Huy hiệu đồng8 gold badges53 silver badges73 bronze badges

hỏi ngày 5 tháng 11 năm 2010 lúc 23:10Nov 5, 2010 at 23:10

1

Nếu bạn đang sử dụng Python 2.5 hoặc sớm hơn, hãy mở tệp và sau đó sử dụng đối tượng tệp trong chuyển hướng của bạn:

log = open("c:\\goat.txt", "w")
print >>log, "test"

Nếu bạn đang sử dụng Python 2.6 hoặc 2.7, bạn có thể sử dụng in như một chức năng:

from __future__ import print_function
log = open("c:\\goat.txt", "w")
print("test", file = log)
log.close()

Nếu bạn đang ở trên Python 3.0 trở lên, thì bạn có thể bỏ qua nhập khẩu trong tương lai.

Nếu bạn muốn chuyển hướng toàn cầu các câu lệnh in của mình, bạn có thể đặt sys.stdout:

import sys
sys.stdout = open("c:\\goat.txt", "w")
print ("test sys.stdout")

Hướng dẫn log python output to text file - ghi đầu ra của python vào tệp văn bản

Đã trả lời ngày 5 tháng 11 năm 2010 lúc 23:15Nov 5, 2010 at 23:15

Eli Courtwrighteli CourtwrightEli Courtwright

Phim thương hiệu vàng 180K6666 gold badges209 silver badges256 bronze badges

4

Để chuyển hướng đầu ra cho tất cả các bản in, bạn có thể làm điều này:all prints, you can do this:

import sys
with open('c:\\goat.txt', 'w') as f:
    sys.stdout = f
    print "test"

Matthias

4.28112 Huy hiệu vàng43 Huy hiệu bạc80 Huy hiệu đồng12 gold badges43 silver badges80 bronze badges

Đã trả lời ngày 5 tháng 11 năm 2010 lúc 23:56Nov 5, 2010 at 23:56

Koloboskoloboskolobos

9087 Huy hiệu bạc12 Huy hiệu đồng7 silver badges12 bronze badges

2

Một cách hơi hackier (khác với câu trả lời ở trên, tất cả đều hợp lệ) sẽ chỉ cần hướng đầu ra vào một tệp thông qua bảng điều khiển.

Vì vậy, hãy tưởng tượng bạn đã có

log = open("c:\\goat.txt", "w")
print >>log, "test"
4

if True:
    print "hello world"
else:
    print "goodbye world"

Bạn có thể làm

python main.py >> text.log

và sau đó Text.log sẽ nhận được tất cả các đầu ra.

Điều này rất tiện lợi nếu bạn đã có một loạt các câu lệnh in và không muốn thay đổi chúng một cách riêng lẻ để in vào một tệp cụ thể. Chỉ cần thực hiện nó ở cấp trên và hướng tất cả các bản in vào một tệp (chỉ có nhược điểm là bạn chỉ có thể in vào một đích duy nhất).

Đã trả lời ngày 25 tháng 10 năm 2014 lúc 0:10Oct 25, 2014 at 0:10

Hướng dẫn log python output to text file - ghi đầu ra của python vào tệp văn bản

Tristan Taotristan TaoTristan Tao

84510 Huy hiệu bạc27 Huy hiệu đồng10 silver badges27 bronze badges

1

Dựa trên các câu trả lời trước, tôi nghĩ rằng đó là một trường hợp sử dụng hoàn hảo để thực hiện nó (đơn giản) Phong cách quản lý bối cảnh:

import sys

class StdoutRedirection:
    """Standard output redirection context manager"""

    def __init__(self, path):
        self._path = path

    def __enter__(self):
        sys.stdout = open(self._path, mode="w")
        return self

    def __exit__(self, exc_type, exc_val, exc_tb):
        sys.stdout.close()
        sys.stdout = sys.__stdout__

và sau đó:

with StdoutRedirection("path/to/file"):
    print("Hello world")

Ngoài ra, sẽ rất dễ dàng để thêm một số chức năng vào lớp

log = open("c:\\goat.txt", "w")
print >>log, "test"
5 (ví dụ: một phương thức cho phép bạn thay đổi đường dẫn)

Đã trả lời ngày 15 tháng 10 năm 2018 lúc 14:43Oct 15, 2018 at 14:43

Hướng dẫn log python output to text file - ghi đầu ra của python vào tệp văn bản

z33kz33kz33k

2.8602 Huy hiệu vàng23 Huy hiệu bạc35 Huy hiệu Đồng2 gold badges23 silver badges35 bronze badges

Sử dụng đối số

log = open("c:\\goat.txt", "w")
print >>log, "test"
6 Trong hàm
log = open("c:\\goat.txt", "w")
print >>log, "test"
7, bạn có thể có các tệp khác nhau trên mỗi bản in:

print('Redirect output to file', file=open('/tmp/example.log', 'w'))

Đã trả lời ngày 22 tháng 11 năm 2017 lúc 15:44Nov 22, 2017 at 15:44

Đơn giản trong Python 3.6

log = open("c:\\goat.txt", "w")
print >>log, "test"
0

Tôi đang tìm kiếm thứ gì đó như tôi đã làm ở Perl

log = open("c:\\goat.txt", "w")
print >>log, "test"
1

OneCricketeer

162K18 Huy hiệu vàng122 Huy hiệu bạc224 Huy hiệu đồng18 gold badges122 silver badges224 bronze badges

Đã trả lời ngày 9 tháng 3 năm 2019 lúc 16:24Mar 9, 2019 at 16:24

Clint Clintclint

Phù hiệu bằng đồng 2133 bronze badges

log = open("c:\\goat.txt", "w")
print >>log, "test"
2

Vui lòng thêm

log = open("c:\\goat.txt", "w")
print >>log, "test"
8 để tránh lỗi "'Charmap' codec không thể mã hóa các ký tự ở vị trí 12-32: Bản đồ ký tự thành"

OneCricketeer

162K18 Huy hiệu vàng122 Huy hiệu bạc224 Huy hiệu đồng18 gold badges122 silver badges224 bronze badges

Đã trả lời ngày 9 tháng 3 năm 2019 lúc 16:24Jun 7, 2019 at 9:25

Clint ClintSijin John

Phù hiệu bằng đồng 2136 silver badges15 bronze badges

Vui lòng thêm

log = open("c:\\goat.txt", "w")
print >>log, "test"
8 để tránh lỗi "'Charmap' codec không thể mã hóa các ký tự ở vị trí 12-32: Bản đồ ký tự thành"

log = open("c:\\goat.txt", "w")
print >>log, "test"
3

fatal_error

Đã trả lời ngày 7 tháng 6 năm 2019 lúc 9:252 gold badges17 silver badges16 bronze badges

Sijin Johnsijin JohnJun 26, 2014 at 17:04

3

Làm cách nào để đăng nhập vào một tệp văn bản trong Python?

Cách bắt đầu ghi nhật ký tin nhắn trong Python..
Nhập mô -đun ghi nhật ký ..
Định cấu hình logger bằng phương thức basicConfig (). ....
Chỉ định tệp mà tin nhắn nhật ký được gửi ..
Xác định mức độ nghiêm trọng của người Viking của các tin nhắn nhật ký ..
Định dạng các thông báo nhật ký ..
Nối hoặc ghi đè các tin nhắn nhật ký trước đó trong tệp ..

Làm thế nào để bạn đăng nhập đầu ra trong Python?

Nếu bạn muốn in nhật ký Python vào một tệp thay vì trên bảng điều khiển thì chúng ta có thể làm như vậy bằng cách sử dụng phương thức basicConfig () bằng cách cung cấp tên tệp và fileMode làm tham số.Định dạng của thông báo có thể được chỉ định bằng cách sử dụng tham số định dạng trong phương thức basicConfig ().using the basicConfig() method by providing filename and filemode as parameter. The format of the message can be specified by using format parameter in basicConfig() method.

Làm cách nào để lưu đầu ra python vào tệp?

Để tạo và ghi vào một tệp mới, hãy sử dụng mở với tùy chọn W W W.Tùy chọn W W W sẽ xóa bất kỳ tệp hiện có nào trước đây và tạo một tệp mới để viết.Nếu bạn muốn nối vào một tệp hiện có, thì hãy sử dụng câu lệnh Open với tùy chọn của A A.Trong chế độ Phụ lục, Python sẽ tạo tệp nếu nó không tồn tại.use open with “w” option. The “w” option will delete any previous existing file and create a new file to write. If you want to append to an existing file, then use open statement with “a” option. In append mode, Python will create the file if it does not exist.

Làm thế nào để bạn viết vào một tệp văn bản trong Python?

Trong Python, bạn có thể ghi vào tệp văn bản bằng cách làm theo ba bước sau: Mở tệp bằng hàm Open ().Open a file using the open() function. Write to the file using the write() method.. Close the file using the close() method.