【发布时间】:2012-11-24 05:23:36
【问题描述】:
我需要一些帮助; 我正在尝试用 python 编写一种命令提示符
我需要将文本文件拆分为行,然后将它们拆分为字符串
例子:
拆分
command1 var1 var2;
command2 (blah, bleh);
command3 blah (b bleh);
command4 var1(blah b(bleh * var2));
进入:
line1=['command1','var1','var2']
line2=['command2']
line2_sub1=['blah','bleh']
line3=['blah']
line3_sub1=['b','bleh']
line4=['command4']
line4_sub1=['blah','b']
line4_sub2=['bleh','var2']
line4_sub2_operand=['*']
这可能吗? 如果是这样,有人可以解释如何或给我一段代码来做到这一点吗?
非常感谢,
【问题讨论】:
-
到目前为止你编码了什么?
-
这里没有押韵或理由来解释为什么一件事应该是一种方式,而另一件事应该是另一种方式。例如为什么
command3完全不存在?为什么第一行是command1,第二行是command 2? -
使用名称为
line1、line2等的变量不是存储从文件处理的数据的正确方法,除非您事先确切知道您将拥有多少行(甚至经常如此)。您需要一个数据结构来存储结果,可能是列表列表或字典列表。将文本文件拆分为行,然后将行拆分为单词非常容易;但是,您似乎有一些相当复杂且可能定义不明确的规则来处理输入,而不仅仅是拆分事物,您需要更详细地考虑这些规则。 -
此外,表示通常是一棵树,因此您应该使用
line4_sub1而不是line4_sub1_sub1(使用您自己的符号)。诸如乘法之类的操作通常会转换为类似 RPN 的表示形式,例如 [multiply [operand1operand2]]。
标签: python arrays string code-separation