организация всех слов в текстовом файле в массиве или связанном списке, используя python - PullRequest
1 голос
/ 04 июля 2011

У меня есть текстовый файл следующего формата.

<InitialNode>-><MergeNode *merge>->("Prepare for election")
->["Equipment, voter lists, ballot styles and/or ballots"]-><ForkNode>
{ ->("Prepare for voting (precinct)")-><ForkNode>
{ ->("Gather in-person vote") // Includes early voting.
->["Ballots and/or ballot images"]->(Collect *c),
"Precinct count"->("Count (precinct count)")
->["Machine totals"]->0..1(*c)
}

Мне нужно разбить текстовый файл и сохранить элементы таким образом, чтобы

array[0]=<InitialNode>
array[1]=->
array[2]=<MergeNode *merge>
array[3]=->
array[4]=("Prepare for election")
array[5]=-> 
array[6]=["Equipment, voter lists, ballot styles and/or ballots"]
array[7]=->

и т. Д..

Короче говоря, мне нужно разбить весь текст на основе ->.

Все, что находится между '->', ',', '}', '}'должен храниться в связанном списке или массиве.

Как я могу сделать это, используя python?

Ответы [ 2 ]

0 голосов
/ 04 июля 2011

Я бы просто использовал встроенный метод split строк.

>>> with open('txtfile.txt', 'r') as f:
...     txt = f.read()
... 
>>> txt.split('->')
['\n<InitialNode>', '<MergeNode *merge>', '("Prepare for election")\n', 
 '["Equipment, voter lists, ballot styles and/or ballots"]', '<ForkNode>\n{ ', 
 '("Prepare for voting (precinct)")', '<ForkNode>\n{ ', 
 '("Gather in-person vote") // Includes early voting.\n', 
 '["Ballots and/or ballot images"]', '(Collect *c),\n"Precinct count"', 
 '("Count (precinct count)")\n', '["Machine totals"]', '0..1(*c)\n}\n'
]

Но я не уверен, что вы подразумеваете под "Все, что находится между '->', ',', '}', '}', должно храниться в связанном списке илимассив «.Это делает это?Или вам нужно разделить эти подстроки дальше?

0 голосов
/ 04 июля 2011

Если ваша начальная строка хранится в x.

Чтобы получить весь текст в x, выполните

x = open("/tmp/filename").read()

Это должно сделать трюк

import re
splitter = re.compile('->')
array = splitter.split(x)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...