输出数据未按计划打印

output data not printing quite as planned

我有一段代码接受输入的数字,搜索 CSV 并输出该行,但是原始输入的数字也会被打印出来。我需要在我的代码中修改什么才能删除它?

    def DoASearch():
        self.outputQty.delete(1.0, 'end')
        self.outputDesc.delete(1.0, 'end')
        self.dwgoutputbox.configure(state="normal")
        self.dwgoutputbox.delete(1.0, 'end')
        self.dwgoutputbox.configure(state="disabled")
        try:
            print(int(sonumber.get()))
        except ValueError:
            messagebox.showwarning("OPPS !!", "Please enter a valid Shop Order number.")

        with open("lesspreadsheettest.csv") as csvfile:
            reader = csv.DictReader(csvfile)
            for row in reader:
                result=(row['Shop Order'])
                if sonumber.get() == result:
                    print(row['Part Number'])
                    print(row['Description'])
                    print(row['Quantity'])
                    print(row['Drawings'])
                    print(row['Issue'])

    self.searchbutton = ttk.Button(rootWindow, text="Search", command=DoASearch)
    self.searchbutton.grid(row=1, column=7, sticky=W, padx=3, pady=3)

修改后的代码可以很好地与下面的代码配合使用。添加了一些可以忽略的额外重复字段。

def checkcsv():
        with open("lesspreadsheettest.csv") as csvfile:
            reader = csv.DictReader(csvfile)
            for row in reader:
                result=(row['Shop Order'])
                if sonumber.get() == result:
                    descQty=(row['Quantity'])
                    descInfo=(row['Description'])
                    descPN=(row['Part Number'])
                    descDwg1=(row['Drawings1'])
                    descIss1=(row['Issue1'])
                    descDwg2=(row['Drawings2'])
                    descIss2=(row['Issue2'])
                    descDwg3=(row['Drawings3'])
                    descIss3=(row['Issue3'])
                    self.outputQty.insert(INSERT,descQty)
                    self.outputDesc.insert(INSERT,descPN, END," ", END, descInfo)
                    self.dwgoutputbox.insert(INSERT, descDwg1, END, "   ", END, " Issue:  ",END,descIss1,END, "\n")
                    self.dwgoutputbox.insert(INSERT, descDwg2, END, "   ", END, " Issue:  ",END,descIss2,END, "\n")
                    self.dwgoutputbox.insert(INSERT, descDwg3, END, "   ", END, " Issue:  ",END,descIss3,END, "\n")
                    self.outputQty.configure(state="disabled")          
                    self.outputDesc.configure(state="disabled")
                    self.dwgoutputbox.configure(state="disabled")

使用循环的稍微好一点的版本如下:

def checkcsv():
        with open("lesspreadsheettest.csv") as csvfile:
            reader = csv.DictReader(csvfile)
            for row in reader:
                result=(row['Shop Order'])
                if sonumber.get() == result:
                    descQty=(row['Quantity'])
                    descInfo=(row['Description'])
                    descPN=(row['Part Number'])
                    for i in range(1,4):
                        descDwg=(row['Drawings'+ str(i)])
                        descIss=(row['Issue'+ str(i)])
                        self.dwgoutputbox.insert(1.0, descDwg, "dwg", "  Issue: ", "", descIss, "", "\n")
                    self.outputQty.insert(1.0, descQty)
                    self.outputDesc.insert(1.0, descPN, "", ": ", "", descInfo)
                    self.outputQty.configure(state="disabled")          
                    self.outputDesc.configure(state="disabled")
                    self.dwgoutputbox.configure(state="disabled")

我建议更改以下行

print(int(sonumber.get()))

进入

int(sonumber.get())

但是,您真的应该更深入地研究您的代码,以便了解它所做的哪些 事情以及在哪里 它做了那些事情东西。