gpt4 book ai didi

python - 用户如何输入文件名?

转载 作者:太空狗 更新时间:2023-10-30 02:21:38 28 4
gpt4 key购买 nike

我已经为汇编程序编写过代码,但我对 python 还是个新手。
在我的代码中,我让用户输入一个文件,该文件将被转换为汇编语言。我想我几乎可以正常工作了,但我无法弄清楚用户在哪里输入文件名。
我处于 (我认为是) 空闲状态,然后当我按下 F5 时它在 shell 中运行。我收到一个错误,但我很确定这是因为没有输入文件名。

用户应该在哪里输入这些东西?这是从 python shell 还是从命令行完成的,我需要把它变成可执行文件吗?

有人可以帮助阐明用户在何处输入所有这些信息吗?

我将放入一段代码,虽然我认为没有必要回答我的问题,但也许它会让您更好地了解我的问题。

if __name__ == '__main__':
import sys

if len(sys.argv) == 1:
print 'need filename'
sys.exit(-1)

table = SymbolTable()
parser = Parser(sys.argv[1])
parser.advance()
line = 0

while parser.hasMoreCommands():
if parser.commandType() == 'L_COMMAND':
table.addEntry(parser.symbol(), line)
else:
line += 1

parser.advance()

code = Code()
parser = Parser(sys.argv[1])
parser.advance()

var_stack = 16

while parser.hasMoreCommands():
cmd_type = parser.commandType()

if cmd_type == 'A_COMMAND':
number = 32768

try:
addr = int(parser.symbol())
except:
if table.contains(parser.symbol()):
addr = table.getAddress(parser.symbol())
else:
table.addEntry(parser.symbol(), var_stack)
addr = var_stack
var_stack += 1

bin_number = bin(number | addr)[3:]
assembly = '0' + bin_number
print assembly
elif cmd_type == 'C_COMMAND':
assembly = '111'
assembly += code.comp(parser.comp())
assembly += code.dest(parser.dest())
assembly += code.jump(parser.jump())
print assembly

parser.advance()

要注意的部分是开头的第 4-6 行,它正在检查文件名。因此,一旦我运行我的程序,我就会在屏幕上打印出“需要文件名”和一条如下所示的错误消息:

Traceback (most recent call last):
File "C:\Python27\Assembler.py", line 98, in <module>
sys.exit(-1)
SystemExit: -1

那么我在哪里可以输入文件名来避免这个错误呢?

最佳答案

按照您的方式,Python 期望文件名作为参数:

python file.py your_file.asm

如果要提示输入文件名,请使用 raw_input()(或 input() 用于 Python 3):

filename = raw_input('Enter a filename: ') or 'default_file.asm'

关于python - 用户如何输入文件名?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15037803/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com