Найти - Пользователи
Полная версия: Как из текстового файла вытащить нужные данные? (из определенной строки... до определенной строки)
Начало » Центр помощи » Как из текстового файла вытащить нужные данные? (из определенной строки... до определенной строки)
1
Pes
None
py.user.next
Сделай переменную состояния. У неё будет несколько возможных значений.

Начальное состояние “строка не встретилась”, в котором строки просто отбрасываются и проверяются на слово “Москва”. Если слово “Москва” встретилось, то нужно перевести переменную во второе состояние.

Второе состояние “строка встретилась”, которое означает, что строка со словом “Москва” найдена и тоже отброшена, а следующие строки сохраняются. Когда нужные строки выбраны, нужно перевести переменную в третье состояние.

Третье состояние “строки выбраны”, в котором все строки просто отбрасываются без всяких поисков, либо сразу происходит выход из цикла.
Pes
py.user.next
Сделай переменную состояния. У неё будет несколько возможных значений. Начальное состояние “строка не встретилась”, в котором строки просто отбрасываются и проверяются на слово “Москва”. Если слово “Москва” встретилось, то нужно перевести переменную во второе состояние.Второе состояние “строка встретилась”, которое означает, что строка со словом “Москва” найдена и тоже отброшена, а следующие строки сохраняются. Когда нужные строки выбраны, нужно перевести переменную в третье состояние.Третье состояние “строки выбраны”, в котором все строки просто отбрасываются без всяких поисков, либо сразу происходит выход из цикла.

А можно пример? пожалуйста….
py.user.next
  
>>> text = """\
... Abc abc 1
... Def def 1
... Ghi ghi 1
... Москва город
... Эту сохраняем 1
... Эту сохраняем 2
... Эту сохраняем 3
... Abc abc 2
... Def def 2
... Ghi ghi 2
... Москва город
... Abc abc 3
... Def def 3
... Ghi ghi 3
... """
>>> 
>>> word = 'Москва'
>>> 
>>> out = []
>>> state = 0
>>> n = 0
>>> for line in text.splitlines():
...     if state == 0:
...         if word in line:
...             state = 1
...             n = 0
...     elif state == 1:
...         n += 1
...         if n <= 3:
...             out.append(line)
...         else:
...             state = 2
...     elif state == 2:
...         break
... 
>>> out
['Эту сохраняем 1', 'Эту сохраняем 2', 'Эту сохраняем 3']
>>>

tags: fsm
Pes
Огогошеньки….. огромная, огромная благодарочка)))) Спасиб!
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB