一尘不染

Python-IOError:[Errno 13]权限被拒绝:

python

IOError: [Errno 13] Permission denied明白了,不知道这段代码有什么问题。

我正在尝试读取具有绝对路径(仅表示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

我在这里做错了什么?


阅读 109

收藏
2020-12-20

共1个答案

一尘不染

您似乎正在尝试使用以下代码替换扩展名:

if (myFile[-4:] == ".asm"):
    newFile = myFile[:4]+".hack"

但是,您似乎混合了数组索引。请尝试以下操作:

if (myFile[-4:] == ".asm"):
    newFile = myFile[:-4]+".hack"

请注意在第二行代码中使用-4代替4。这说明了您的程序为何要尝试创建/Use.hack,它是文件名()的
四个字符/Use,并.hack附加在其后。

2020-12-20