我有从文件夹中获取最新文件的程序。
def getList():
previousFile = ''
Files = glob.glob("C:\\Users\\kshah2\\Desktop\\MDR\\*")
LatestFile = max(Files, key =os.path.getctime)
if previousFile == '':
previousFile = LatestFile
if LatestFile != previousFile:
File = open(LatestFile, "r")
asc_list = [line for line in File.readlines()]
event.source.parent.getComponent('Text Area').text = (system.file.readFileAsString(LatestFile))
event.source.parent.getComponent('Label 1').text = str(LatestFile)
event.source.running = 0
event.source.value = 0
previousFile = LatestFile
File.close()
return asc_list
else:
messageBox("Its Already used")
return ''
问题是,如果我这样保留它,则每次调用该函数时,都会擦除previousFile,这意味着无论是否执行,它都会获取最新文件。
但是同时,如果我没有前两行,则会抛出一个错误,提示未定义previousFile。
我应该在哪里声明previousFile?以及如何将LatestFile名称分配给previousFile? 我知道这应该很简单,但似乎无法弄清楚。
答案 0 :(得分:0)
这个问题没有得到很好的描述,但是据我了解,解决方案将要求您将“ previousFile”另存为全局变量。
class FileManage:
def __init__(self):
self._previousFile = ''
def listSaver(self):
for i in NumberOfFiles:
self.getList()
def getList(self):
# Use the global self._previousFile.
self._previousFile在迭代后保存,并在开始时初始化一次。
如果您在理解课程上遇到困难,可以阅读here