安装我的应用程序后,Linecache getline不起作用

时间:2017-09-25 21:31:40

标签: getline linecache

我正在创建一个工具,概述了百分之一的测试结果。此工具访问日志文件,检查Pass和Fail判断。当它失败时,我需要回到日志的前一行来捕获失败的原因。 linecache.getline在我的工作区中工作(Python Run通过eclipse)。但是在我创建了一个Windows安装程序(.exe文件)并在我的计算机中安装了该应用程序之后,linecache.getline什么也没有返回。有什么东西我需要添加到我的setup.py文件来解决这个问题,还是我的代码问题?

工具代码

PRECON: 从wx.FileDialog,访问日志文件

    self.result_path = dlg.GetPath() 
    try:
         with open(self.result_path, 'r') as file:
         self.checkLog(self.result_path, file)

def checkLog(self, path, f):

        line_no = 1
        index = 0
        for line in f:
             n = re.search("FAIL", line, re.IGNORECASE) or re.search("PASS", line, re.IGNORECASE)
             if n:
               currentline = re.sub('\s+', ' ', line.rstrip())
               finalresult = currentline


                self.list_ctrl.InsertStringItem(index, finaltestname)
                self.list_ctrl.SetStringItem(index, 1, finalresult)

                 if currentline == "FAIL":

                    fail_line1 = linecache.getline(path, int(line_no - 3)) #Get reason of failure
                    fail_line2 = linecache.getline(path, int(line_no - 2)) #Get reason of failure                    
                    cause = fail_line1.strip() + " " + fail_line2.strip()
                    self.list_ctrl.SetStringItem(index, 2, cause)

                    index += 1
             line_no += 1

1 个答案:

答案 0 :(得分:0)

通过此链接执行get_line函数解决了该问题: Python: linecache not working as expected?