Hi guys,
import dbftable = dbf.Table('players.dbf')table.open()index = table.create_index(lambda rec: (rec.fname, rec.name))print (index)matches = index.search(match=('Wiggins'))print (matches)table.close()
<dbf.ver_33.Index object at 0x0000000003E15630>
<class 'dbf.ver_33.List'>(key=(table_name, record_number))
import dbfprint ('Which player do you want to change?')playername = input('> ')def index():
table = dbf.Table('players.dbf')table.open()
with table:# Create an index of column/sindex = table.create_index(lambda rec: (rec.name))# Creates a list of matching valuesmatch = index.search(match=(playername,), partial=True)# Assigns the first value in the list to 'player'player = match[0]with player:print ('Which team should this player join?')player.team = input('> ')print (player.team)table.close()index()
import osimport dbffrom tkinter import *from tkinter import filedialog# Assign database location by finding most recently edited directory.def find_database():saves_dir = r'C:\Users\Ian\Documents\NBA Live 06\saves'directory_list = []for d in os.listdir(saves_dir):bd = os.path.join(saves_dir, d)if os.path.isdir(bd): directory_list.append(bd)latest_subdir = max((os.path.getmtime(f),f) for f in directory_list)[1]location = (latest_subdir + '\\' + 'players.dbf')t = dbf.Table(location)return tfind_database()table = find_database()# Change database location using filedialog if needed.def change_db():new_dir = filedialog.askdirectory()table = new_dir# Populate OptionMenu lists.def create_lists():surname = entry.get()
with table:# Create an index of column/sindex = table.create_index(lambda rec: (rec.name))# Creates a list of matching values
matches = index.search(match=(surname,), partial=True)# Populate playerOption Menu with playerlist.playerlist = []for item in matches:playerlist.append([item[4], item[2], item[1]])m = playerOption.children['menu']m.delete(0, END)for line in playerlist:m.add_command(label=line,command=lambda v=var,l=line:v.set(l))# Populate teamOption Menu with teamlist.n = teamOption.children['menu']n.delete(0, END)teamnumbers = []x=0for t in teamlist:n.add_command(label=t,command=lambda v=tvar,l=t:v.set(l))teamnumbers.append(x)x = x + 1# Set player id numberdef player_id():playeridstring = var.get()firstfive = playeridstring[:5]four_digit_id = firstfive[1:]three_digit_id = firstfive[1:4]two_digit_id = firstfive[1:3]# Check to ensure player ID is only numbersif four_digit_id.isdigit() == TRUE:id = int(four_digit_id)elif three_digit_id.isdigit() == TRUE:id = int(three_digit_id)elif two_digit_id.isdigit() == TRUE:id = int(two_digit_id)return id# Set team id numberdef team_id():teamidstring = tvar.get()firsttwo = teamidstring[:2]teamid = int(firsttwo)return teamid# Assign new team id to playerdef assign():player_id()plyid = int(player_id())team_id()tmid = team_id()
with table:# Create an index of column/s
index = table.create_index(lambda rec: (rec.playerid))
# Creates a list of matching values
match = index.search(match=(plyid,), partial=True)player = match[0]playern = str(player.fname + player.name)with player:player.team = tmid# Set status_message text.status_message.config(text = playern + 'has been assigned to the ' + tvar.get())# Initiate Tkintermaster = Tk()master.geometry('{}x{}'.format(400, 125))master.title('Assign a Player to a Team')# Button to search for a different database location.fd_button = Button(master, text="...", command=change_db).grid(row = 0, column = 6, sticky=W)# Entry box for player surname.entry = Entry(master, width=50)entry.grid(row = 0, column = 0, columnspan = 5)# Button to search for surnames.surname_button = Button(master, text="Go", command=create_lists)surname_button.grid(row = 0, column = 7, sticky = W)# Menu for player choosing.var = StringVar(master)playerlist = ['']playerOption = OptionMenu(master, var, *playerlist)playerOption.grid(row = 1, column = 1, columnspan = 4, sticky = EW)# Menu for team choosing.tvar = StringVar(master)teamlist = ['0 Atlanta Hawks', '1 Boston Celtics', '2 Charlotte Hornets', '3 Chicago Bulls', '4 Cleveland Cavaliers', '5 Dallas Mavericks', '6 Denver Nuggets', '7 Detroit Pistons', '8 Golden State Warriors', '9 Houston Rockets', '10 Indiana Pacers', '11 LA Clippers Clippers', '12 LA Lakers Lakers', '13 Memphis Grizzlies', '14 Miami Heat', '15 Milwaukee Bucks', '16 Minnesota Timberwolves', '17 Brooklyn Nets', '18 New Orleans Pelicans', '19 New York Knicks', '20 Orlando Magic', '21 Philadelphia 76ers', '22 Phoenix Suns', '23 Portland Trail Blazers', '24 Sacramento Kings', '25 San Antonio Spurs', '26 Oklahoma City Thunder', '27 Toronto Raptors', '28 Utah Jazz', '29 Washington Wizards', '50 Free Agents']teamOption = OptionMenu(master, tvar, *teamlist)teamOption.grid(row = 2, column = 1, columnspan = 4, sticky = EW)# Button to assign player to team.assign_button = Button(master, text="Assign", command=assign)assign_button.grid(row = 2, column = 6, columnspan = 2)# Status message.status_message = Message(master, text='', width = 400, anchor = W)status_message.grid(row = 3, column = 0, columnspan = 8, sticky = EW)mainloop()