LINUX.ORG.RU
ФорумTalks

Помогите! Надо написать парсер текстового файла на Питоне


0

0

Народ, помогите! Надо написать парсер текстового файла на Питоне, с Питоном мало знаком, но парсер нужен срочно! Приведите пожалуйста пример парсера, что-нить вроде шаблона, я бы его переделал для себя! Плиз, очень надо!

anonymous

obytes = {}
ibytes = {}
f = open( filename, 'r' )
ad = 0
strs = 0
while 1:
    s = f.readline()
    s = string.strip( s )
    if re.match( '^--- Accounting on \d+$', s ):
        m = re.match( '.+ on \d{8}(\d\d)(\d\d)\d+$', s )
        curtime = ( ad * 12 + int( m.group( 1 ) ) % 12 ) * 60 + int( m.group( 2 ) )
        if curtime >= 710 and ad == 0:
            ad = 1
        continue

    if ( curtime >= firsttime ) and ( curtime <= lasttime ):
        if re.match( '^[0-9.]+.+', s ):
            m = re.match( '^([0-9.]+)\s+([0-9.]+)\s+\d+\s+(\d+)$', s )
            try:
                obytes[ m.group( 1 ) ] = obytes[ m.group( 1 ) ] + int( m.group( 3 ) )
            except KeyError:
                obytes[ m.group( 1 ) ] = int( m.group( 3 ) )

            try:
                ibytes[ m.group( 2 ) ] = ibytes[ m.group( 2 ) ] + int( m.group( 3 ) )
            except KeyError:
                ibytes[ m.group( 2 ) ] = int( m.group( 3 ) )

            strs = strs + 1
        continue

    if curtime > lasttime:
        break

f.close()

anonymous
()
Ответ на: комментарий от anonymous

забыл добавить. это штука парсит фаил IPaccounting'а вида:

--- Accounting on 20060529121000
Source           Destination     Packets  Bytes
.....
192.168.0.2      192.168.1.3     1        40966
.....
Accounting data age is 10

anonymous
()
Ответ на: комментарий от anonymous

Спасибо, брат анонимус! Ты спас мне жизнь!

anonymous
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.