0

对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

不工作。

任何想法?

4

2 回答 2

0

这就是您要查找的内容: http: //docs.python.org/library/optparse.html

于 2012-04-24T21:12:46.323 回答
0

optparse 确实是更高级的 cl 选项所需要的。但是,您可以python assembler.py <filename>使用一个简单的if __name__ == "__main__"块。代替argparseor 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])

您还需要 googlepython string formatting并找到类似http://docs.python.org/library/stdtypes.html#string-formatting的链接

于 2012-04-24T21:19:28.833 回答