0

デスクトップをブロードキャストしているときに人々がチャットしているIRCクライアントがあります。これを放送で見せたかったのですが、テキストファイルを読み取って画面に表示できる便利な衝撃波フラッシュタイトルプラグインを見つけました。

私のIRCクライアントはPythonスクリプトを使用しており、誰かがメッセージを書くたびに関数を呼び出すことができます。

これらのテキスト行は、入ってくるときにテキストファイルに書き込むことができますが、ファイルに「たとえば4」行を超えるテキストがある場合は、Pythonでコーディングする方法が必要です。次のテキストを追加すると、一番上のテキストが削除されます。

これを行うには、行の追加機能が呼び出されたときにテキストファイルを読み取り、最後の3行を読み取って新しい行を追加してから、元のファイルに再書き込みすることを計画しました。

もちろん、スクリプトが最初に実行されるとき、ファイルには3行未満である必要があるため、Pythonもそれを考慮し、最後の2、1、または0のみを読み取る必要があります...

前の質問でコードを書いてみましたが、うまくいかなかったので、ここには含めません。

4

1 に答える 1

0

あなたはあまり簡単に諦めるべきではありません、あなたの前の質問に対する受け入れられた答えはほとんどそれをしました。

次のことだけを行う必要があります。

  1. を使用して入力ファイルを開き、deque最後の数行を取得して、新しい行を追加します
    (新しい行区切り文字を使用することを忘れないでください\n) 。
  2. ファイルを出力ファイルとして再度開き、行のコレクションを書き込みます。

from collections import deque

path = 'test.txt'

with open(path, 'r') as file:
    lines = deque(file, 4)
    lines.append("\nthis is an additional line.")

with open(path, 'w') as file:
    file.writelines(lines)
于 2013-03-26T23:00:22.693 に答える