匿名 #7209(2008/08/19 05:27 GMT) [ Python ] Rating0/0=0.00
手抜きで行末記号を"\n"で決め打ちです。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43
import sys import time import StringIO def gettail(fp, n): start = fp.tell() fp.seek(0, 2) end = fp.tell() s = '' while len(s) < end - start and s.count('\n') <= n: a = min(160 * n, fp.tell() - start) fp.seek(-a, 1) s = fp.read(a) + s return StringIO.StringIO(s).readlines()[-n:] def getnlines(fp, start, n): fp.seek(0, 2) pos = fp.tell() fp.seek(start) for s in gettail(fp, n): sys.stdout.write(s) sys.stdout.flush() return pos n = 10 f = False fp = None sys.argv.pop(0) while sys.argv: s = sys.argv.pop(0) if s == '-n': n = int(sys.argv.pop(0)) elif s == '-f': f = True elif not s.startswith('-'): fp = file(s, 'rb') pos = getnlines(fp, 0, n) while f: time.sleep(1) pos = getnlines(fp, pos, n)
Rating0/0=0.00-0+
[ reply ]
匿名
#7209()
[
Python
]
Rating0/0=0.00
Rating0/0=0.00-0+
[ reply ]