In Text File, How Can I Parse Multilines In Particular Pattern Using Python?
I've asked a similar question in the past, but I'm not good at it, so I'll ask you again. Here is sample textfile.txt     dummy01234567890     0987654321dummy      -------start----
Solution 1:
Finite-state machine is adaptive and simple enough for most needs.
state = 'init'
arrays = []
with open('textfile.txt') as f:
    lines = []
    for line in f.readlines():
        ifstate == 'init':  # seek for start
             word = line.strip().strip('-')
             if word != 'start':
                 continuestate = 'start'
             lines = []
        elif state == 'start':  # start parsing now
             word = line.strip().strip('-')
             if word != 'end':
                 lines.append(line.strip())
                 continue# end current parsing now
             arrays.append('\n'.join(lines))
             state = 'init'Solution 2:
You can do something like this to achieve the desired result :
text = """dummy01234567890
    0987654321dummy 
    -------start-------(It is possible to modify)
    text line1
    text line2
    -------end---------(It is possible to modify)
    12345678910
    qwertyuiop        
    -------start-------(It is possible to modify)
    text line3
    text line4
    -------end---------(It is possible to modify)
    ;p12309809128309123
    dummyline1235567"""
text_list = text.splitlines()
print(['\n'.join([text_list[3+i*6].strip(), text_list[4+i*6].strip()]) for i in xrange(len(text_list)/6)])
This will result in :
['text line1\ntext line2', 'text line3\ntext line4']
Post a Comment for "In Text File, How Can I Parse Multilines In Particular Pattern Using Python?"