Python基于一个Inpu删除行

2024-09-30 18:24:23 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在用Tkinter做一个GUI程序。你知道吗

程序接收CSV文件。然后有函数AddDeleteUpdate 我已经完成了add部分,但我也可以完成delete部分,但不知何故,我只想尝试通过列删除。例如,条目为:

2012-1221, Name Lastname, 

我想通过ID Number 2012-1221删除所有这些条目

我不能就这么做。这是我的密码:

from Tkinter import *
import sys
import sys
import os
import operator
import datetime
import csv
import fileinput

root = Tk()
root.title("SCS Club/Guilds/Committee System")
root.grid()
root.geometry("400x450")
root.resizable(width=False, height=False)
files = StringVar()

label = Label(root, text="Clearance and Management", bg="white", fg="black")
label.pack(fill=X)

label1 = Label(root, text="Student Record", bg = "lightgreen", font = "chiller 20 bold").pack()
label2 = Label(root, text ="Enter file name:").pack()
fileName = Entry(root, textvariable=files, relief=GROOVE, bg="lightgreen").pack()


def fileOpen():
def newWindow():
def addData():
    idGet = str(idno.get())
    nameGet = str(nme.get())
    courseGet = str(crse.get())
    yearGet = str(yr.get())
    fileNameGet = str(files.get())
    with open(fileNameGet, 'ab') as csvfile:
        writer = csv.writer(csvfile, delimiter=',', quotechar = '|')

        completeFields = idGet + ',' + nameGet +','+ courseGet +','+ yearGet
        writer.writerow([completeFields])

    addEntry.delete(0,"end")
    idEntry.delete(0,"end")
    crseEntry.delete(0,"end")
newWin = Toplevel()
newWin.geometry("400x200")
newWin.resizable(width=False,height=False)
newWin.title("Add Student")

addId = Label(newWin, text="ID Number").grid(row=1, column=0)
idno = StringVar(None)
idEntry = Entry(newWin, textvariable=idno,bg="lightgreen")
idEntry.grid(row=1, column=1)

addNme = Label(newWin, text="Name").grid(row=2, column=0)
nme = StringVar(None)
addEntry = Entry(newWin, textvariable=nme, text="Name")
addEntry.grid(row=2, column=1)

addCrse =  Label(newWin, text="course").grid(row=3, column=0)
crse = StringVar(None)
crseEntry = Entry(newWin, textvariable=crse, text="Course")
crseEntry.grid(row=3, column=1)

addYr =  Label(newWin, text="Year").grid(row=4, column=0)
yr = StringVar(None)
yrEntry = Entry(newWin, textvariable=yr, text="Year")
yrEntry.grid(row=4, column=1)

addFinal = Button(newWin, text="ADD", command=addData, relief=GROOVE).grid(row=5, column=1)   

def deleteWindow():
def deleteData():
    getID = str(idno.get())
    fileName = str(files.get())

    f = open(fileName,"r")
    lines = f.readlines()
    f.close()
    f = open(fileName,"w")
    for line in lines:
    if line!=getID+"\n":
        f.write(line)
    f.close()

    idEntry.delete(0,"end")
    msg = Label(deleteWin, text="Removed Successfully", font="fixedsys 12 bold").place(x=10,y=50)

deleteWin = Toplevel()
deleteWin.geometry("200x100")
deleteWin.resizable(width=False, height=False)
deleteWin.title("DELETE")
delete_id = Label(deleteWin, text="ID Number ").grid(row=0,column=0)
idno = StringVar(None)
idEntry = Entry(deleteWin, text=idno, bg="lightgreen")
idEntry.grid(row=0,column=1)
deleteFinal = Button(deleteWin, text="REMOVE", command=deleteData, relief=GROOVE).grid(row=4, column=1)

filename = str(files.get())

nfile = open(filename, 'a+')
display = Label(root, text="Opened file successfully", font = "fixedsys 12 bold").place(x=10,y=120)
studentList = Listbox(root, width=45, height=14, bg="lightgreen")

for line in nfile:
    studentList.insert(END, line)
studentList.place(x=12, y=200)
nfile.close()

addStud = Button(root, text="Add Student", width = 12, height = 2, command=newWindow, relief=GROOVE).place(x=12,y=150)
deleteStud = Button(root, text="Remove Student", width = 12, height = 2,command=deleteWindow, relief=GROOVE).place(x=115,y=150)
updateStud = Button(root, text="Update", width = 9, height = 2,command=updateWindow, relief=GROOVE).place(x=215, y=150)

addFile = Button(root, text="Open File", width = 12, height = 2, command=fileOpen, relief=GROOVE).pack()
root.mainloop()

root.mainloop()

请看我的delete部分。我可以删除一个条目,但我必须把所有的东西都拼出来,对用户来说这会是一个麻烦,对吧?我想通过ID number only删除条目来简化操作。感谢您的帮助。谢谢!你知道吗


Tags: textimportgetcolumnrootdeletewidthlabel