我IOError: [Errno 13] Permission denied明白了,不知道这段代码有什么问题。
IOError: [Errno 13] Permission denied
我正在尝试读取具有绝对路径(仅表示file.asm)的文件,
file.asm
和相对路径(意思是/.../file.asm),我希望程序将文件写入给定的任何路径-如果是绝对路径,则应将其写入当前目录;否则,转到给定的路径。
/.../file.asm
编码:
#call to main function if __name__ == '__main__': assem(sys.argv[1]) import sys def assem(myFile): from myParser import Parser import code from symbolTable import SymbolTable table=SymbolTable() # max size of each word WORD_SIZE = 16 # rom address to save to rom_addrs = 0 # variable address to save to var_addrs = 16 # new addition if (myFile[-4:] == ".asm"): newFile = myFile[:4]+".hack" output = open(newFile, 'w') <==== ERROR
给出的错误:
IOError: [Errno 13] Permission denied: '/Use.hack'
我执行代码的方式:
python assembler.py Users/***/Desktop/University/Add.asm
我在这里做错了什么?
您似乎正在尝试使用以下代码替换扩展名:
if (myFile[-4:] == ".asm"): newFile = myFile[:4]+".hack"
但是,您似乎混合了数组索引。请尝试以下操作:
if (myFile[-4:] == ".asm"): newFile = myFile[:-4]+".hack"
请注意在第二行代码中使用-4代替4。这说明了您的程序为何要尝试创建/Use.hack,它是文件名()的 前 四个字符/Use,并.hack附加在其后。
-4
4
/Use.hack
/Use
.hack