簡體   English   中英

如何讓我的 python 腳本連續將 output 的數據打印到行限制文本文件而不是標准終端?

[英]How do I get my python script that continuously prints out data to output to a line limited text file instead of the standard terminal?

在刪除最舊的數據之前,我只需要允許文件包含 5000 行數據,因為 python 腳本輸出新數據(類似於“bash 中的tail 命令”)。 我希望能夠通過查看腳本輸出到的文本文件來觀察生成的數據。 我需要它能夠在不需要終端的情況下在后台運行,或者在這種情況下 ssh session 處於活動狀態。 在輸出所有數據的 python 腳本的開頭,我嘗試了以下內容:

import sys
sys.stdout = open(tail -c 1G > 'output.txt', 'w', buffering=1)

但無濟於事。 I am not opposed to having a bash script handle the python file, but I would prefer to simply run the python script and have it's output directed to a separate file as mentioned above if possible.

您正在描述一個循環緩沖區,它不是可以由文件支持的數據結構。 文件可以被寫入(覆蓋一些現有內容)或附加到,但不可能在文件中更早地移動字節。 看起來像這樣做的命令通常會寫入臨時文件,然后將內容復制回原始文件。

正如@Luv 建議的那樣,“將最后n行數據保存到磁盤”的典型方法是在幾個文件之間旋轉 您可以在 Python (他們使用RotatingFileHandler的建議似乎合理)或Bash中執行此操作,例如使用rotatelogs

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM