Кез-келген өзгеріс үшін файлды python арқылы құйып жатырмын және ол файлды өзгертпейді

Міне, менің сценарийім:

def tail(file, delay=0.5):
    f = open(file, 'r')
    f.seek(0, 2)
    while True:    
        line = f.readline()
        print 'line: ' + line
        if not line:
            time.sleep(delay)
        else:
            print 'line found!'

Файлды ашқан кезде мен оған бірнеше жол қоссам, бұл сценарий оны жинамайды. Мен мұны linux-да жасаймын.

0
Сіздің мысалыңыздың коды мен үшін жұмыс істейді. Файлға қалай жазасыз?
қосылды автор David Z, көзі
Бұл тақ ... Мен де солай істедім, ол әлі де маған жұмыс істейді. Мен сізге не айтатынын білмеймін. (Python кодын өздігінен тестілеу үшін, редактордың орнына echo linetexthere >> file қолдануға болады vi)
қосылды автор David Z, көзі
байланысты: python «> stackoverflow.com/questions/182197/… stackoverflow.com/questions/136168/…
қосылды автор jfs, көзі
Мен оны VI-де ашып, оған бірнеше жол қосып, содан кейін оны жазамын.
қосылды автор lee_connell, көзі
Дэвид, кіріс үшін рахмет, мәселе файлға сызық қосу болды. Бұл жұмыс істемесе де, эхо мәтіні арқылы мәтінді қосу жұмыс істеді. Барлық рахмет!
қосылды автор lee_connell, көзі

2 жауаптар

Файлды қосу үшін open ('filename', 'r') орнына open ('filename', 'a') пайдаланыңыз ... Менің ойымша, файлды оқудан гөрі қосу керек.

1
қосылды

Код жақсы көрінеді, сондықтан буферлік мәселе мүмкін. Оқу сызығының орнына f.read (100) қолданып көріңіз, сонда сызық аяқталуын іздеуден гөрі қол жетімді нәрсені оқыдыңыз.

0
қосылды
Мен мұны істедім және әлі де ештеңе алған жоқпын. Бұл файл дискідегі өзгерістерді анықтай алмайтын етіп жадыда буферлендірілгендіктен бе?
қосылды автор lee_connell, көзі