【问题标题】:organizing all the words in a text file in an array or linked list using python使用python将文本文件中的所有单词组织成数组或链表
【发布时间】:2011-07-04 16:52:06
【问题描述】:

我有一个如下格式的文本文件。

<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 做到这一点?

【问题讨论】:

  • 这是一种奇怪的格式。你能概括一下语法吗?另外,分隔符可以出现在值内吗?

标签: python arrays file split linked-list


【解决方案1】:

如果你的初始字符串存储在 x 中。

要获取x中的所有文本,请执行

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

这应该可以解决问题

import re
splitter = re.compile('->')
array = splitter.split(x)

【讨论】:

    【解决方案2】:

    我只会使用内置的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'
    ]
    

    但我不确定您所说的“所有介于 '->' , ',' , '}' , '}' 之间的东西都必须存储在链表或数组中”是什么意思。这是这样做的吗?还是需要进一步拆分这些子字符串?

    【讨论】:

    • @rekharajct,我还假设您实际上不需要每个项目之间的 '-&gt;' 字符串;如果你这样做,请告诉我,我会编辑。
    • 我试过上面的代码。我给出的是一个活动图的规范。我的目的是将规范转换为xml格式。规范中的每个元素都有一个含义。例如-> 表示连接,逗号表示分支等等。所以我需要将每个元素- , ,},-> 等存储在一个列表中,遍历它并生成xml。
    • @rekharajct,听起来你需要一个真正的分词器。我会考虑一下...
    • 我给出的是一个活动图的规范。我需要解析文件并为规范创建一个xml等效项。规范中的每个元素都有一个含义。例如 -> 表示连接,逗号表示分支等等。我的意图是将规范中的每个元素存储在一个列表中,包括逗号、大括号、分号、箭头,然后遍历该列表并为每个元素生成等效的 xml .
    猜你喜欢
    • 2021-12-25
    • 1970-01-01
    • 1970-01-01
    • 2015-10-14
    • 1970-01-01
    • 2023-03-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多