定义变量

时间:2018-11-05 18:23:04

标签: python file

我有从文件夹中获取最新文件的程序。

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? 我知道这应该很简单,但似乎无法弄清楚。

1 个答案:

答案 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