私はWebアプリケーションのログファイルビューアを作成しています。そのために、ログファイルの行にページ番号を付けたいと思います。ファイル内のアイテムは、一番下にある最新のアイテムを基にした行です。 したがって、下から行をtail()読み取ることができn、オフセットをサポートするメソッドが必要です。私が思いついたのはこのようなものです: def tail(f, n, offset=0): """Reads a n lines from f with an offset of offset lines.""" avg_line_length = 74 to_read = n + offset while 1: try: f.seek(-(avg_line_length * to_read), 2) except IOError: # woops. apparently file is smaller than what we want # to step back, go …