完全是python的新手,我想做以下事情:
我有这段代码:
def assem(myFile):
print "Hello ,World!"
import myParser
from myParser import Parser
import code
import symboleTable
from symboleTable import SymboleTable
newFile = "Prog.hack"
output = open(newFile, 'w')
input = open(myFile, 'r')
prsr=Parser(input)
while prsr.hasMoreCommands():
str = "BLANK"
if(parser.commandType() == Parser.C_COMMAND):
str="111"+code.comp(prsr.comp())+code.dest(prsr.dest())+code.jump(prsr.jump())+"\n"
output.write(str)
prsr.advance()
检查缩进,确定,这里有点乱。
此程序需要从控制台运行并接收名为Add.asm
使命令运行的控制台命令是什么?
试过:
python assembler.py Add.asm
没用。
任何想法?
答案 0 :(得分:0)
答案 1 :(得分:0)
optparse确实是您需要更高级的cl选项。但是,您可以python assembler.py <filename>
使用简单的if __name__ == "__main__"
块。代替argparse
或optparse
,您可以使用sys.argv[1]
作为脚本的单个简单参数。
def assem(myFile):
print "Hello ,World!"
import myParser
from myParser import Parser
import code
import symboleTable
from symboleTable import SymboleTable
newFile = "Prog.hack"
output = open(newFile, 'w')
input = open(myFile, 'r')
prsr = Parser(input)
while prsr.hasMoreCommands():
str = "BLANK"
if(parser.commandType() == Parser.C_COMMAND):
str= "111" + code.comp(prsr.comp()
) + code.dest(prsr.dest()) + code.jump(prsr.jump()
) + "\n"
output.write(str)
prsr.advance()
if __name__ == "__main__":
import sys
assem(sys.argv[1])
您还需要Google python string formatting
并查找http://docs.python.org/library/stdtypes.html#string-formatting