为什么返回的是 .!search,萌新求解答

我想从docx搜寻我想找的值,但是返回的是:  " .!search"

代码如下

# i_view.py

from tkinter import *

from tkinter.messagebox import *

from i_search import *

 

class QueryFrame(Frame):

    def __init__(self, tk=None):

        super().__init__(tk)

        self.root = tk  # 定义内部变量root

        self.itemName = StringVar()

        self.createpage()

 

    def search(self):

        self.destroy()

        print(Search(self.root, content=self.k))

 

 

    def createpage(self):

        Label(self, text="请输入故障码").grid(row=2, stick=W, pady=10)

        Entry(self, textvariable=self.itemName).grid(row=2, column=1, stick=E)

        self.k = str(self.itemName.get())

        print(self.k)

        Button(self, text="查询", command=self.search).grid(row=4, stick=W, pady=10)

        Button(self, text="退出", command=self.quit).grid(row=4, column=1, stick=E)

 

class InputFrame(Frame):

    def __int__(self, tk=None):

        Frame.__init__(self, tk)

        self.root = tk  # 定义内部变量root

        self.itemName = StringVar()

        self.importPrice = StringVar()

        self.sellPrice = StringVar()

        self.deductPrice = StringVar()

 

class AboutFrame(Frame):

    def __init__(self, tk=None):

        Frame.__init__(self, tk)

        self.root = tk

        self.creat()

 

    def creat(self):

        Label(self, text="欢迎使用此系统!").pack()

 

 

 

#i_search.py

from tkinter import *
from docx import Document

class Search(Frame):
    def __init__(self, tk=None, content=None):
        Frame.__init__(self, tk)
        self.root = tk
        self.reason = StringVar()
        self.solution = StringVar()
        self.content = content
        self.path = "F:\\pycharm\\pythonProject\\engine.docx"
        self.document = Document(self.path)
        self.tables = self.document.tables
        self.createpage()

    def createpage(self):
        self.table = self.tables[0]
        for i in range(1,len(self.table.rows)):
              if str(self.table.cell(i, 0).text) == self.content:
                  return(self.table.cell(i, 1).text+self.table.cell(i, 2).text)
              else:
                  pass

根据你的代码逻辑,如果在表格中没有找到匹配的内容,函数 createpage() 将不会有任何的输出或返回结果。这样可能会导致不能清楚地知道是否成功搜索到了目标内容。你可以添加一些提示信息或返回值,使得结果更加直观和清晰。

同时,也可以将搜索过程封装成一个单独的函数并进行错误处理,以便更好地管理程序运行时发生的异常情况。例如:

def search_solution(document_path, target_content):
    try:
        document = Document(document_path)
        tables = document.tables
        table = tables[0]
        for i in range(1, len(table.rows)):
            if str(table.cell(i, 0).text) == target_content:
                return table.cell(i, 1).text + table.cell(i, 2).text
        return "未找到匹配的内容"
    except Exception as e:
        return str(e)

这样使用起来就比较方便,只需要传入文档路径和目标内容即可得到搜索结果。