我正在尝试关闭类中的文件。但是无论我尝试什么,它都保持开放。所以我的问题很简单。
为什么不关闭?
任何帮助或解释非常欢迎。预先感谢!
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()