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__"ブロックで可能です。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])

また、グーグルでhttp://docs.python.org/library/stdtypes.html#string-formattingpython string formattingのようなリンクを見つけたいと思うでしょう。

于 2012-04-24T21:19:28.833 に答える