从控制台运行python脚本

时间:2012-04-24 21:10:52

标签: python console

完全是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

没用。

任何想法?

2 个答案:

答案 0 :(得分:0)

答案 1 :(得分:0)

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

等链接