我需要一些帮助; 我正在尝试使用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=['*']
这有可能吗? 如果是这样,有人可以解释如何或给我一段能做到的代码吗?
非常感谢,
答案 0 :(得分:1)
有人指出,你的语言似乎没有任何理由。我所能做的只是指向pyparsing,如果我解决了与此类似的问题,我会使用它,这里是pyparsing example for the python language。
答案 1 :(得分:0)
与其他人一样,您的语言设计混乱,您可能需要简化它。但是我会给你你正在寻找的东西,并让你解决这个问题。
标准的python文件对象(由open()返回)是行的迭代器,python字符串类的split()方法将字符串拆分为子字符串列表。因此,您可能希望从以下内容开始:
for line in command_file
words = line.split(' ')
答案 2 :(得分:0)
您可以使用此代码逐行读取文件,并将其分隔为单词之间的空格。
a= True
f = open(filename)
while a:
nextline=f.readline()
wordlist= nextline.split("")
print(wordlist)
if nextline=="\n":
a= False
答案 3 :(得分:0)
你所说的是编写一种简单的编程语言。如果你知道自己在做什么,这并不是特别困难,但大多数人都需要完整学期的课程来学习。事实上,你有多种不同类型的词汇单元,看起来是一个非平凡的递归语法意味着你需要一个扫描仪和一个解析器。如果你真的想教自己这样做,this可能不是一个糟糕的起点。
如果您简化语法,使每个命令只有固定数量的参数,您可以使用regular expressions来表示各个命令的语法。
试一试。只是不要指望它在一夜之间完成所有工作。