我得到了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
Run Code Online (Sandbox Code Playgroud)
给出的错误:
IOError: [Errno 13] Permission denied: '/Use.hack'
Run Code Online (Sandbox Code Playgroud)
我执行代码的方式:
python assembler.py Users/***/Desktop/University/Add.asm
Run Code Online (Sandbox Code Playgroud)
我在这做错了什么?
Vic*_*cky 29
只需关闭要写入的打开文件即可.
Gre*_*ill 17
看起来您正在尝试使用以下代码替换扩展名:
if (myFile[-4:] == ".asm"):
newFile = myFile[:4]+".hack"
Run Code Online (Sandbox Code Playgroud)
但是,您似乎混淆了数组索引.请尝试以下方法:
if (myFile[-4:] == ".asm"):
newFile = myFile[:-4]+".hack"
Run Code Online (Sandbox Code Playgroud)
注意使用-4而不是仅仅4在第二行代码中.这解释了为什么你的程序试图创建/Use.hack,这是你的文件名()的前四个字符/Use,.hack并附加到它.
| 归档时间: |
|
| 查看次数: |
326633 次 |
| 最近记录: |