Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/282.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/typo3/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用python将文本文件中的所有单词组织成数组或链表_Python_Arrays_File_Split_Linked List - Fatal编程技术网

使用python将文本文件中的所有单词组织成数组或链表

使用python将文本文件中的所有单词组织成数组或链表,python,arrays,file,split,linked-list,Python,Arrays,File,Split,Linked List,我有一个以下格式的文本文件 <InitialNode>-><MergeNode *merge>->("Prepare for election") ->["Equipment, voter lists, ballot styles and/or ballots"]-><ForkNode> { ->("Prepare for voting (precinct)")-><ForkNode> { ->("Gath

我有一个以下格式的文本文件

<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)
}
->->(“准备选举”)
->[“设备、选民名单、选票样式和/或选票”]->
{->(“准备投票(选区)”)->
{->(“亲自投票”)//包括提前投票。
->[“选票和/或选票图像”]->(收集*c),
“选区计数”->(“计数(选区计数)”)
->[“机器总数”]->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]=->
数组[0]=
数组[1]=->
数组[2]=
数组[3]=->
数组[4]=(“准备选举”)
数组[5]=->
数组[6]=[“设备、选民名单、选票样式和/或选票”]
数组[7]=->
等等

简而言之,我需要在->的基础上拆分整个文本

“->'、'、'、'}'、'}'之间的所有内容都必须存储在链表或 数组


如何使用python实现这一点?

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

要获取x中的所有文本,请执行以下操作

x = open("/tmp/filename").read()
这应该能奏效

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

我只会使用内置的
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'
]
将open('txtfile.txt','r')作为f: ... txt=f.read() ... >>>txt.split(“->”) ['\n','',(“准备选举”)\n', “[“设备、选民名单、选票样式和/或选票”],“\n{”, “(“准备投票(选区)”),“\n{”, “(“亲自投票”)//包括提前投票。\n”, “[“选票和/或选票图像”],”(收集*c),\n“选区计数”, “(“计数(辖区计数)”)\n',“[“计算机总数”],“0..1(*c)\n}\n” ]
但是我不确定你所说的“介于'->'、'、'、'}'、'}'之间的所有东西都必须存储在链表或数组中”是什么意思?还是需要进一步拆分这些子字符串?

这是一种奇怪的格式。你能把语法概括一下吗?此外,分隔符可以出现在值中吗?@rekharajct,我还假设您实际上不需要每个项之间的
'->'
字符串;如果您这样做,请告诉我,我将进行编辑。我已经尝试了上述代码。我给出的是活动图的规范。我打算将规范转换为xml格式。规范中的每个元素都有一个含义。例如->表示连接,逗号表示分支等等。所以我需要将每个元素-,},->等等存储在一个列表中,遍历它并生成xml。@rekharajct,听起来你需要一个真正的标记器。我会考虑一下……我给出的是活动图的规范。我需要解析文件并为规范创建一个xml等价物。规范中的每个元素都有其含义。例如->表示连接,逗号表示分支等等。我打算将规范中的每个元素存储在一个列表中,包括逗号、大括号、分号、箭头,然后遍历该列表,为每个元素生成等效的xml。