python3在课堂内关闭文件句柄



我正在尝试关闭类中的文件。但是无论我尝试什么,它都保持开放。所以我的问题很简单。

为什么不关闭?

任何帮助或解释非常欢迎。预先感谢!

import os
class LoopFolders:
    def __init__(self, targetFolder):
        self.targetFolder = targetFolder
        print('Target Folder:', targetFolder)
    def closeFile(self):
        self.logFile.close()
        print('All done!')
    def loop(self):
        self.logFile = open('FileList.txt', 'w')
        for root, subs, files in os.walk(self.targetFolder):
            print('Root:', root)
            self.logFile.write('Root:n'+root+'n')
        self.closeFile()
        # This doesn't work either:
        # self.logFile.close()
# code run example
run = LoopFolders('c:/')
run.loop()

我通过将写入零件放在功能下解决了问题。再次感谢您的帮助!

import os
class LoopFolders:
    def __init__(self, targetFolder):
        self.targetFolder = targetFolder
        print('Target Folder:', targetFolder)
    def loop(self):
        with open('fileList.txt', 'w') as self.logFile:
            for root, subs, files in os.walk(self.targetFolder):
                print('Root:', root)
                self.logFile.write('Root:n')
                self.logFile.write(root+'n')
                print('tSubfolders:', subs)
                self.logFile.write('tSubfolders:n')
                for sub in subs:
                    self.logFile.write('t'+sub+'n')
                print('ttFiles:n')
                self.logFile.write('ttFiles:n')
                for file in files:
                    try:
                        print('tt', file, 'n')
                        self.logFile.write('tt'+file+'n')
                    except:
                        print('File in', root, 'could not be read')
                        self.logFile.write('file in '+root+' could not be read')
                        continue
            self.logFile.write('nn')
run = LoopFolders('C:/').loop()

最新更新