検索

ホームページ  >  に質問  >  本文

Python - フラッシュとreadlineの詳細

最初に log.py を実行してから follow.py を実行するのが通常ですが (tail -f と同様の効果が得られる可能性があります)、最初に follow.py を実行してから log を実行することはできません。 py であり、これは vi を通じて行われます。 access-log flush\0 を書き込まないため、最後にクラスのコンテンツを追加することはできません。 readline が \0 を読み取れません。続行しますか?この問題の根本的な原因は何ですか?

リーリー リーリー
我想大声告诉你我想大声告诉你2791日前851

全員に返信(1)返信します

  • 曾经蜡笔没有小新

    曾经蜡笔没有小新2017-05-18 10:50:31

    問題は、log.py写得模式用了w, 如果你先打开follow.py, 并且thefile.seek(0,2), 那么它的偏移量肯定是最后的, 如果你的access-log有十万行, 总长度为100000字节, 那么thefile的位置就会去到第100000位置, 但是你的log.py却用了w, 这个模式会从头开始写, 所以直到log.py写到100000字节, 才会真正被follow.py接受到, 并且开始输出从100000位置后新增的内容.
    解决办法:
    换种写模式, 用APPEND追加モードが次のように書かれていることです:

    リーリー

    編集で出力がない理由は、vim を使用してファイルを編集すると、実際のファイルではなく一時ファイルで編集されるためです。一時ファイル名は「.xxx.swp」です (xxx はファイルを表します)。名前は編集中) )vim

    返事
    0
  • キャンセル返事