2015-08-28 99 views
-1


我制作了一个需要分析3D打印机日志文件并将其导出到.xlsx的脚本。
我完成了,但现在我需要为该脚本制作GUI,除了一件事我几乎完成了所有事情。我有功能类似这样
Python Tkinter。在def文本框中插入文本?

def run(templatefilename): 

#LIST OF PRINTER LOG FILES 
listOfLogFiles = glob.glob(r"newPrintLogs\*.txt") 

for logfile in listOfLogFiles: 

    #PARSING PRINTER LOG FILE 
    data = parsPrintingLog(logfile) 

    #WRITE EXCEL FILE 
    excelWrite(data, templatefilename) 

    # MOVE FINISHED FILES 
    dst = "finishedPrintLogs\\" + logfile.split('\\')[-1] 
    src = r"" + str(logfile) 
    shutil.move(src, dst) 
    consoleLog(src + " " + "successfully finished and moved to" + " " + dst) 
    # print (src, "successfully finished and moved to", dst) 

,并从这个功能我需要导出“#将完成的文件”。
在我制作GUI之前,我使用print来打印日志在哪里移动,但现在我不知道如何在GUI文本框中打印它,没有必要成为一个文本框,我只需要在我的GUI应用程序。

回答

0

也许我误解了你的问题,但是从我收集的你想要转储的日志文件的内容显示在tkinter GUI中。

您可以使用ttk ScrolledText小部件。

小小例子,”

textbox = ttk.ScrolledText(parent) 
log_contents = open(log_file, "r").read() 
textbox.insert("end", log_contents) 

如果你必须log_contents.decode("utf-8")

一些其他的编码,可以将这个例如 在textbox.insert log_contents可以解码到utf-8你的日志文件,然后就可以处理滚动,搜索滚动文本小部件突出显示的单词等通过其他方法搜索您的日志文件内容例如。

+0

不是真的,我需要导出“\ pri nt(src,“成功完成并移动到”,dst)\“到我的GUI应用程序,而不是日志文件。 – galabl

+0

因此,为了说明您需要插入以下文本'src已成功完成并移至dst',其中src和dst是GUI的源目录和目标目录?如果是这种情况,为什么不直接定义文本框,然后定义打印行的位置?textbox.insert(“end”,“%s已成功完成并移动到%s \ n”%(src,dest)) '? – Pythonista

+0

NameError:未定义name'src' – galabl