Python中出现意外的未登录错误

Python中出现意外的未登录错误,python,error-handling,exception-handling,try-catch,ioerror,Python,Error Handling,Exception Handling,Try Catch,Ioerror,因此,我已将任务设置为为正在处理的加密程序加载文件,但我收到一个错误,指出控制台遇到了一个意外的未登录项,但我不知道它在哪里!我认为这是一个小故障,试图重写代码,但我仍然得到相同的错误!我是个业余程序员,有人能帮我吗 这是我遇到问题的代码的一部分: def loadFile(): try: aFile = input('Plese enter a filename: \n') myFile = open(aFile, 'r+') globa

因此,我已将任务设置为为正在处理的加密程序加载文件,但我收到一个错误,指出控制台遇到了一个意外的未登录项,但我不知道它在哪里!我认为这是一个小故障,试图重写代码,但我仍然得到相同的错误!我是个业余程序员,有人能帮我吗

这是我遇到问题的代码的一部分:

def loadFile():
    try:
        aFile = input('Plese enter a filename: \n')
        myFile = open(aFile, 'r+')
        global myFile
        try:
            print('Gathering file information...')
            time.sleep(1)
            print('The string you have chosen to encrypt is:')
            print(myFile.read())
        finally:
            myFile.close()
    except IOError:
        print('The file does not exist \n')
        loadFile()

您可以使用以下命令-


perl-i.bak-pe“s/\t/''x(8-pos()%8)/eg”file.py
回溯会告诉您发生这种情况的位置。您可能正在混合制表符和空格;强制编辑器仅使用空格(展开选项卡)。Python提示:使用
和open(aFile,'r+')作为myFile:
这样就不必使用
try…finally
。还有,为什么要在这里将
myFile
设为全局文件?您可以在函数中关闭它。递归不是处理
IOError
情况的好方法,请改用
while
循环,因为如果从未创建文件,递归堆栈将用完。我将myFile设置为全局变量,因为我将在函数外部访问它以读取用户的文件。这只是我的程序的一个片段,因为这是我唯一遇到重大问题的地方。我们在错误捕捉中学会了使用递归,因为这会让用户回到起点。当我之前测试我的程序时,我对IOError没有任何问题,在这之前的几天,这个程序运行良好,没有意外的未登录项或任何东西。我没有对这个部分做任何修改,它只是停止了工作。这就是困扰我的地方…你被教导使用递归,这是。。麻烦。在这里构建递归堆栈没有任何好处,也有巨大的缺点(例如,在递归调用返回之前不会释放内存)。您正在关闭文件对象,因此将其设置为全局对象是毫无意义的,您无法从已关闭的文件中读取。对此,我很抱歉,我真的不擅长编码(很抱歉现在将其作为主题)。那么,我如何使用while循环来修复这个问题呢?@EugeneK-我知道这很讽刺,但对我来说效果很好:)非常感谢你的回答,但我只是很难找到我应该在代码中放置这个的位置。有什么帮助吗?@Python-假设您在linux系统上工作-您可以在终端上作为命令运行它:)但是如果我在windows上运行它呢?