Вопрос по python, io, file-io, file – IOError: [Errno 2] Нет такого файла или каталога Python

1

У меня есть этот кусок кода, пытаясь найти*.vm файлы и отправьте их другому

модуль, который я сделал, который должен читать строки.

это основной файл:

<code>def VMTranslte(fileName):
print "FILEOVER ",fileName
from parser import Parser
from codeWriter import CodeWriter
if (fileName[-3:] == ".vm"):
    outputFile = fileName[:-3]+".asm"
    myWrite = CodeWriter(outputFile)
    myWrite.setFileName(fileName)
    myParser = Parser(fileName)
    myWrite.setFileName(fileName);
    translate(myParser,myWrite)
else:
    if fileName[-1:] == "/": <===== CHECKS FOR DIRECTORY
        mystr = fileName.split('/')[-2]
        mystr = mystr.split('.')[0]+".asm"
        outputFile = fileName+mystr
    else:
        outputFile = fileName+".asm"
    myWrite = CodeWriter(outputFile)
    for child in os.listdir(fileName):
        if child.endswith('.vm'): <===== CHECK IF THERE IS *.vm FILE
            print "CHILD: ",child <===== PRINTS THE FILE WANTED (MEANING FINDS IT)
            myWrite.setFileName(child);
            myParser = Parser(child) <===== CALLS THE READER MODULE DESCRIBED AT THE BOTTOM
            translate(myParser,myWrite) 
myWrite.close()
</code>

модуль, который должен читать строки:

<code>#Constructor for Parser module.
def __init__(self,fileName):
    import re
    self.cmds = []
    self.counter = 0
    myFile = open(fileName, 'r') <=====ERROR OVER HERE
    fLines = myFile.readlines()
    for value in fLines : 
        lineStrip = value.strip()
        if not (re.match("//",lineStrip) or len(lineStrip)==0):
            self.cmds.append(lineStrip)
</code>

ошибка:

<code>  File "/Users/***/Desktop/dProj7/parser.py", line 19, in __init__
  myFile = open(fileName, 'r')
  IOError: [Errno 2] No such file or directory: 'BasicTest.vm'
</code>

Понятно, что скрипт находит файл, (он идет в первом цикле),

что здесь происходит?

Ваш Ответ

1   ответ
3

только имя файла. Вы, вероятно, хотите позвонить Parser сos.path.join(fileName, child) в качестве аргумента.

Похожие вопросы