2012-01-17 33 views
11

Tôi phát triển ứng dụng máy khách-khách và tôi đã đăng nhập vào máy chủ, vì vậy tôi sử dụng mô-đun ghi nhật ký. Tôi muốn tạo một lệnh trong máy chủ để xóa tệp.Python: xóa một tệp nhật ký

Tôi có thử nghiệm với os.remove() nhưng sau đó, nhật ký không hoạt động.

Bạn có ý tưởng không?

Cảm ơn.

+0

Nhật ký này có được viết bởi quy trình daemon không? Bạn sẽ phải báo hiệu cho daemon rằng tệp nhật ký đã bị xóa để nó có thể đóng/mở lại xử lý tệp nhật ký và bắt đầu sử dụng tệp nhật ký mới. Nếu không nó sẽ chỉ tiếp tục viết cho cái cũ, mà vẫn sẽ tồn tại ở đâu đó cho đến khi tất cả các tập tin trên nó được đóng lại. –

+1

Đặt 'mode =" w "' vào ['logging.FileHandler'] (https://docs.python.org/2/library/logging.handlers.html#filehandler). –

Trả lời

27

Có thể tốt hơn là cắt bớt tệp thay vì xóa tệp đó. Giải pháp đơn giản nhất là để mở lại các tập tin để viết từ chức năng thanh toán bù trừ của bạn và đóng nó lại:

with open('yourlog.log', 'w'): 
    pass 
+0

Thaks, điều đó rất tuyệt! – Guillaume

3

Hãy thử

>>> with open("gre.txt", "w") as file: 
... file.truncate() 
... 
>>> 

CẬP NHẬT này:

file.truncate() là không cần thiết. Bạn chỉ có thể pass

+1

Vì vậy, về cơ bản bạn đã sao chép câu trả lời của newtover – Purefan

Các vấn đề liên quan