This is a personal record of my python programming experiences. It will allow me to see how I am progressing as I learn a new language.
Wednesday, March 26, 2014
ANOTHER PROGRAM FOR WORK
from Tkinter import *
import sqlite3
#Witten by Steve Atchison For Shawnee County March 26 2014
def cleargui():
textwindow.delete("1.0",END)
addent.delete(0,END)
def connectdb():
connect = sqlite3.connect("mydata.db")
cur = connect.cursor()
cur.execute("CREATE TABLE IF NOT EXISTS addressdata(address text)")
def addtodatabase():
theadd=addent.get()
connect = sqlite3.connect("mydata.db")
cur=connect.cursor()
cur.execute("INSERT INTO addressdata VALUES(?)",([theadd.upper() + " - DELETED FROM GIS"]))
connect.commit()
getdata()
def getdata():
connect = sqlite3.connect("mydata.db")
cur=connect.cursor()
thedata = cur.execute("SELECT * FROM addressdata")
cleargui()
for row in thedata:
textwindow.insert("100.0",row[0]+"\n")
def findadd():
cleargui()
addr=findentry.get()
connect = sqlite3.connect("mydata.db")
cur=connect.cursor()
thedata = cur.execute("SELECT * FROM addressdata WHERE address = ?",([addr]))
for row in thedata:
textwindow.insert("0.1",row[0])
addent.delete(0,END)
def delrecord():
addr=findentry.get()
connect=sqlite3.connect("mydata.db")
cur=connect.cursor()
cur.execute("DELETE FROM addressdata WHERE address = ?",([addr]))
connect.commit() #will not delete without this!
cleargui()
findentry.delete(0,END)
getdata()
connectdb()#creates a database if none exists.
root=Tk()
root.title("REMOVED ADDRESS POINTS")
root.config(bg='black')
lbl=Label(root,text="ADDRESS TO REMVOE FROM GIS").pack()
menu2=Toplevel(root)
menu2.geometry('200x200')
menu2.config(bg="yellow")
addent=Entry(root,text="ADDRESS TO DELETE")
addent.pack()
textwindow=Text(root,background='white')
textwindow.pack()
btn=Button(root,text='Add to Database ',command=addtodatabase)
btn.pack()
btn2=Button(root,text="Show data",command=getdata)
btn2.pack()
btn3=Button(root,text="Clear window",command=cleargui)
btn3.pack()
findentry=Entry(menu2)
findentry.pack()
btn4=Button(menu2,text="Find Address",command= findadd)
btn4.pack(padx=10,pady=10)
delbutton=Button(menu2,text='DELETE',command=delrecord)
delbutton.pack(padx=10,pady=10)
root.mainloop()
Thursday, January 30, 2014
OLD PROGAM QUIT WORKING, SO I WROTE A NEW AND BETTER ONE.
#written by Steve Atchison for Shawnee County Feb 24 2014
from Tkinter import *
mxd = arcpy.mapping.MapDocument('CURRENT')
def textfunc400():
thepin=ent1.get() #Get parcel number from the GUI
for elm in arcpy.mapping.ListLayoutElements(mxd, "TEXT_ELEMENT"):
if elm.name == "PIN":
elm.text = str(thepin)
layout400()
layer_control()
def layout400():
df = arcpy.mapping.ListDataFrames(mxd)[0]
mxd.activeView = 'Page_Layout'
df = arcpy.mapping.ListDataFrames(mxd)[0]
df.scale = 4800
df.referenceScale = '2400'
refresh()
def textfunc200():
thepin=ent1.get() #Get parcel number from the GUI
for elm in arcpy.mapping.ListLayoutElements(mxd, "TEXT_ELEMENT"):
if elm.name == "PIN":
elm.text = str(thepin)
layout200()
layer_control()
def layout200():
df = arcpy.mapping.ListDataFrames(mxd)[0]
mxd.activeView = 'Page_Layout'
df = arcpy.mapping.ListDataFrames(mxd)[0]
df.scale = 2400
df.referenceScale = '1200'
refresh()
def layout100():
df = arcpy.mapping.ListDataFrames(mxd)[0]
mxd.activeView = 'Page_Layout'
df = arcpy.mapping.ListDataFrames(mxd)[0]
df.scale = 1200
df.referenceScale = '600'
refresh()
def textfunc100():
thepin=ent1.get() #Get parcel number from the GUI
for elm in arcpy.mapping.ListLayoutElements(mxd, "TEXT_ELEMENT"):
if elm.name == "PIN":
elm.text = str(thepin)
layout100()
layer_control()
def textfunc50():
thepin=ent1.get() #Get parcel number from the GUI
for elm in arcpy.mapping.ListLayoutElements(mxd, "TEXT_ELEMENT"):
if elm.name == "PIN":
elm.text = str(thepin)
layout50()
def layout50():
df = arcpy.mapping.ListDataFrames(mxd)[0]
mxd.activeView = 'Page_Layout'
df = arcpy.mapping.ListDataFrames(mxd)[0]
df.scale = 600
df.referenceScale = '600'
refresh()
layer_control()
def layer_control():
lyr=arcpy.mapping.ListLayers(mxd,'Parcel_Point')[0]
lyr.visible=False
lyr=arcpy.mapping.ListLayers(mxd,'Parcel_Poly')[0]
lyr.visible=False
lyr=arcpy.mapping.ListLayers(mxd,'AERIALS_2012')[0]
lyr.visible=False
lyr=arcpy.mapping.ListLayers(mxd,'Owners')[0]
lyr.visible=False
def photoon():
lyr=arcpy.mapping.ListLayers(mxd,'AERIALS_2012')[0]
lyr.visible=True
refresh()
def photooff():
lyr=arcpy.mapping.ListLayers(mxd,'AERIALS_2012')[0]
lyr.visible=False
refresh()
def owneron():
lyr=arcpy.mapping.ListLayers(mxd,'Owners')[0]
lyr.visible=True
refresh()
def refresh():
arcpy.RefreshActiveView()
arcpy.RefreshTOC()
layer_control()
root = Tk()
root.title("Steve's Layout Tool")
root.geometry("250x250")
root.config(bg="purple")
ent1=Entry(root)
ent1.pack()
btn3 = Button(root,text = "Map Title 400", command = textfunc400)
btn3.pack(padx=2,pady=2)
btn = Button(root, text = 'Map Title 200 ',command = textfunc200)
btn.pack(padx=2,pady=2)
btn2 = Button(root,text = "Map Title 100", command= textfunc100)
btn2.pack(padx=2,pady=2)
btn4 = Button(root,text = "Map Title 50", command = textfunc50)
btn4.pack(padx=2,pady=2)
photobtn = Button(root,text = "Photo On", command = photoon)
photobtn.pack(padx=5, pady=5)
photobtn2 = Button(root,text = "Photo Off", command = photooff)
photobtn2.pack(padx=5,pady=5)
ownbtn=Button(root,text = "Show Owners", command = owneron)
ownbtn.pack()
ent1.insert(0,"Map Title")
root.mainloop()
#CLEAR REFERENCE SCALE AFTER USING THIS SCRIPT
#BE SURE AND CLOSE THE GUI OR IT WILL LOCK ARC MAP UP!
from Tkinter import *
mxd = arcpy.mapping.MapDocument('CURRENT')
def textfunc400():
thepin=ent1.get() #Get parcel number from the GUI
for elm in arcpy.mapping.ListLayoutElements(mxd, "TEXT_ELEMENT"):
if elm.name == "PIN":
elm.text = str(thepin)
layout400()
layer_control()
def layout400():
df = arcpy.mapping.ListDataFrames(mxd)[0]
mxd.activeView = 'Page_Layout'
df = arcpy.mapping.ListDataFrames(mxd)[0]
df.scale = 4800
df.referenceScale = '2400'
refresh()
def textfunc200():
thepin=ent1.get() #Get parcel number from the GUI
for elm in arcpy.mapping.ListLayoutElements(mxd, "TEXT_ELEMENT"):
if elm.name == "PIN":
elm.text = str(thepin)
layout200()
layer_control()
def layout200():
df = arcpy.mapping.ListDataFrames(mxd)[0]
mxd.activeView = 'Page_Layout'
df = arcpy.mapping.ListDataFrames(mxd)[0]
df.scale = 2400
df.referenceScale = '1200'
refresh()
def layout100():
df = arcpy.mapping.ListDataFrames(mxd)[0]
mxd.activeView = 'Page_Layout'
df = arcpy.mapping.ListDataFrames(mxd)[0]
df.scale = 1200
df.referenceScale = '600'
refresh()
def textfunc100():
thepin=ent1.get() #Get parcel number from the GUI
for elm in arcpy.mapping.ListLayoutElements(mxd, "TEXT_ELEMENT"):
if elm.name == "PIN":
elm.text = str(thepin)
layout100()
layer_control()
def textfunc50():
thepin=ent1.get() #Get parcel number from the GUI
for elm in arcpy.mapping.ListLayoutElements(mxd, "TEXT_ELEMENT"):
if elm.name == "PIN":
elm.text = str(thepin)
layout50()
def layout50():
df = arcpy.mapping.ListDataFrames(mxd)[0]
mxd.activeView = 'Page_Layout'
df = arcpy.mapping.ListDataFrames(mxd)[0]
df.scale = 600
df.referenceScale = '600'
refresh()
layer_control()
def layer_control():
lyr=arcpy.mapping.ListLayers(mxd,'Parcel_Point')[0]
lyr.visible=False
lyr=arcpy.mapping.ListLayers(mxd,'Parcel_Poly')[0]
lyr.visible=False
lyr=arcpy.mapping.ListLayers(mxd,'AERIALS_2012')[0]
lyr.visible=False
lyr=arcpy.mapping.ListLayers(mxd,'Owners')[0]
lyr.visible=False
def photoon():
lyr=arcpy.mapping.ListLayers(mxd,'AERIALS_2012')[0]
lyr.visible=True
refresh()
def photooff():
lyr=arcpy.mapping.ListLayers(mxd,'AERIALS_2012')[0]
lyr.visible=False
refresh()
def owneron():
lyr=arcpy.mapping.ListLayers(mxd,'Owners')[0]
lyr.visible=True
refresh()
def refresh():
arcpy.RefreshActiveView()
arcpy.RefreshTOC()
layer_control()
root = Tk()
root.title("Steve's Layout Tool")
root.geometry("250x250")
root.config(bg="purple")
ent1=Entry(root)
ent1.pack()
btn3 = Button(root,text = "Map Title 400", command = textfunc400)
btn3.pack(padx=2,pady=2)
btn = Button(root, text = 'Map Title 200 ',command = textfunc200)
btn.pack(padx=2,pady=2)
btn2 = Button(root,text = "Map Title 100", command= textfunc100)
btn2.pack(padx=2,pady=2)
btn4 = Button(root,text = "Map Title 50", command = textfunc50)
btn4.pack(padx=2,pady=2)
photobtn = Button(root,text = "Photo On", command = photoon)
photobtn.pack(padx=5, pady=5)
photobtn2 = Button(root,text = "Photo Off", command = photooff)
photobtn2.pack(padx=5,pady=5)
ownbtn=Button(root,text = "Show Owners", command = owneron)
ownbtn.pack()
ent1.insert(0,"Map Title")
root.mainloop()
#CLEAR REFERENCE SCALE AFTER USING THIS SCRIPT
#BE SURE AND CLOSE THE GUI OR IT WILL LOCK ARC MAP UP!
Sunday, December 29, 2013
New program to help me with phone calls at work.
#!/usr/bin/python
from Tkinter import *
import sqlite3
#Witten by Steve Atchison 12/28/2013
def cleargui():
textwindow.delete("1.0",END)
parnumber.delete(0,END)
def connectdb():
connect = sqlite3.connect("mydata.db")
cur = connect.cursor()
cur.execute("CREATE TABLE IF NOT EXISTS phonedata(parcelnum text, description text)")
def addtodatabase():
parnum=parnumber.get()
description=textwindow.get("1.0",END)
connect = sqlite3.connect("mydata.db")
cur=connect.cursor()
cur.execute("INSERT INTO phonedata VALUES(?,?)",([parnum,description]))
connect.commit()
cleargui()
def getdata():
connect = sqlite3.connect("mydata.db")
cur=connect.cursor()
thedata = cur.execute("SELECT * FROM phonedata")
cleargui()
for row in thedata:
textwindow.insert("100.0","\n"+row[0]+"\n"+row[1]+"\n---------------------------------------------------------")
def findpar():
cleargui()
parnum=findentry.get()
connect = sqlite3.connect("mydata.db")
cur=connect.cursor()
thedata = cur.execute("SELECT * FROM phonedata WHERE parcelnum = ?",([parnum]))
for row in thedata:
textwindow.insert("0.1",row[0]+'\n\n'+row[1])
parnumber.delete(0,END)
def delrecord():
parnum=findentry.get()
connect=sqlite3.connect("mydata.db")
cur=connect.cursor()
cur.execute("DELETE FROM phonedata WHERE parcelnum = ?",([parnum]))
connect.commit() #will not delete without this!
cleargui()
findentry.delete(0,END)
getdata()
connectdb()#creates a database if none exists.
root=Tk()
root.title("PARCEL INFO")
root.config(bg='dark blue')
lbl=Label(root,text="Parcel number").pack()
menu2=Toplevel(root)
menu2.config(bg="red")
parnumber=Entry(root,text="Deed number")
parnumber.pack()
textwindow=Text(root,background='white')
textwindow.pack()
btn=Button(root,text='Add to Database ',command=addtodatabase)
btn.pack()
btn2=Button(root,text="Show data",command=getdata)
btn2.pack()
btn3=Button(root,text="Clear window",command=cleargui)
btn3.pack()
findentry=Entry(menu2)
findentry.pack()
btn4=Button(menu2,text="Find parcel",command= findpar)
btn4.pack(padx=10,pady=10)
delbutton=Button(menu2,text='DELETE',command=delrecord)
delbutton.pack(padx=10,pady=10)
root.mainloop()
Saturday, November 30, 2013
Working on a database program for work, it saves letters.
from Tkinter import *
import sqlite3
#Witten by Steve Atchison 11/19/2013 for SHAWNEE COUNTY
def listletters():
connect =sqlite3.connect("LETTER_data.db")
cur = connect.cursor()
letter = cur.execute("SELECT * FROM letters")
cleargui()
for row in letter:
textwindow.insert("500.0",row[2])
def cleargui():
textwindow.delete("1.0",END)
deed.delete(0,END)
pinnum.delete(0,END)
def connectdb():
connect = sqlite3.connect("LETTER_data.db")
cur = connect.cursor()
cur.execute("CREATE TABLE IF NOT EXISTS letters(quickref text,pin text, letter text)")
def addtodatabase():
quickref=deed.get()
pin=pinnum.get()
letter=textwindow.get("1.0",END)
connect = sqlite3.connect("LETTER_data.db")
cur=connect.cursor()
cur.execute("INSERT INTO letters VALUES(?,?,?)",([quickref,pin,letter]))
connect.commit()
cleargui()
def getdata():
connect = sqlite3.connect("LETTER_data.db")
cur=connect.cursor()
thedata = cur.execute("SELECT * FROM letters")
for row in thedata:
textwindow.insert("500.0",row[0]+"\n"+row[1]+"\n")
def addlettertotext():
f=open('theletter.txt','r')
for line in f:
textwindow.insert("50.0",line)
def findquick():
cleargui()
pinnum=quickent.get()
connect = sqlite3.connect("LETTER_data.db")
cur=connect.cursor()
theletter = cur.execute("SELECT letter FROM letters where pin = (?)",([pinnum]))
for line in theletter:
textwindow.insert("50.0",line)
quickent.delete(0,END)
def listpins():
cleargui()
connect=sqlite3.connect("LETTER_data.db")
cur=connect.cursor()
parcelnum = cur.execute("SELECT pin FROM letters")
for row in parcelnum:
print(row[0])
textwindow.insert("100.0",row[0]+"\n")
connectdb()#creates a database if none exists.
root=Tk()
root.title("LETTER DATABASE")
root.config(bg='green')
root.geometry('900x700')
top=Toplevel(root)
top.geometry("300x200")
top.config(bg="orange")
top.title("Add letter to database form")
top2=Toplevel(root)
top2.geometry("300x100")
top2.config(bg="light blue")
top2.title("List options")
lbl=Label(top,text="Quick Ref Number").pack()
deed=Entry(top)
deed.pack()
lbl2=Label(top,text="Parcel number").pack()
pinnum=Entry(top)
pinnum.pack()
textwindow=Text(root,width='800',height=35,background='white')
textwindow.pack()
add_to_txt=Button(top,text="IMPORT theletter.txt", command=addlettertotext)
add_to_txt.pack()
addtodatabase=Button(top,text='Add letter to Database ',command=addtodatabase)
addtodatabase.pack()
getpidbtn=Button(top2,text="List Letters", command= listletters)
getpidbtn.pack()
btn3=Button(root,text="Clear window",command=cleargui)
btn3.pack()
btn5=Button(root,text="Find using PIN", command=findquick)
btn5.pack()
listpinbtn=Button(top2,text="List PIN numbers",command=listpins)
listpinbtn.pack()
quickent=Entry(root)
quickent.pack()
root.mainloop()
#DON'T FORGET TO ADD THE QUICK REF NUMBER
import sqlite3
#Witten by Steve Atchison 11/19/2013 for SHAWNEE COUNTY
def listletters():
connect =sqlite3.connect("LETTER_data.db")
cur = connect.cursor()
letter = cur.execute("SELECT * FROM letters")
cleargui()
for row in letter:
textwindow.insert("500.0",row[2])
def cleargui():
textwindow.delete("1.0",END)
deed.delete(0,END)
pinnum.delete(0,END)
def connectdb():
connect = sqlite3.connect("LETTER_data.db")
cur = connect.cursor()
cur.execute("CREATE TABLE IF NOT EXISTS letters(quickref text,pin text, letter text)")
def addtodatabase():
quickref=deed.get()
pin=pinnum.get()
letter=textwindow.get("1.0",END)
connect = sqlite3.connect("LETTER_data.db")
cur=connect.cursor()
cur.execute("INSERT INTO letters VALUES(?,?,?)",([quickref,pin,letter]))
connect.commit()
cleargui()
def getdata():
connect = sqlite3.connect("LETTER_data.db")
cur=connect.cursor()
thedata = cur.execute("SELECT * FROM letters")
for row in thedata:
textwindow.insert("500.0",row[0]+"\n"+row[1]+"\n")
def addlettertotext():
f=open('theletter.txt','r')
for line in f:
textwindow.insert("50.0",line)
def findquick():
cleargui()
pinnum=quickent.get()
connect = sqlite3.connect("LETTER_data.db")
cur=connect.cursor()
theletter = cur.execute("SELECT letter FROM letters where pin = (?)",([pinnum]))
for line in theletter:
textwindow.insert("50.0",line)
quickent.delete(0,END)
def listpins():
cleargui()
connect=sqlite3.connect("LETTER_data.db")
cur=connect.cursor()
parcelnum = cur.execute("SELECT pin FROM letters")
for row in parcelnum:
print(row[0])
textwindow.insert("100.0",row[0]+"\n")
connectdb()#creates a database if none exists.
root=Tk()
root.title("LETTER DATABASE")
root.config(bg='green')
root.geometry('900x700')
top=Toplevel(root)
top.geometry("300x200")
top.config(bg="orange")
top.title("Add letter to database form")
top2=Toplevel(root)
top2.geometry("300x100")
top2.config(bg="light blue")
top2.title("List options")
lbl=Label(top,text="Quick Ref Number").pack()
deed=Entry(top)
deed.pack()
lbl2=Label(top,text="Parcel number").pack()
pinnum=Entry(top)
pinnum.pack()
textwindow=Text(root,width='800',height=35,background='white')
textwindow.pack()
add_to_txt=Button(top,text="IMPORT theletter.txt", command=addlettertotext)
add_to_txt.pack()
addtodatabase=Button(top,text='Add letter to Database ',command=addtodatabase)
addtodatabase.pack()
getpidbtn=Button(top2,text="List Letters", command= listletters)
getpidbtn.pack()
btn3=Button(root,text="Clear window",command=cleargui)
btn3.pack()
btn5=Button(root,text="Find using PIN", command=findquick)
btn5.pack()
listpinbtn=Button(top2,text="List PIN numbers",command=listpins)
listpinbtn.pack()
quickent=Entry(root)
quickent.pack()
root.mainloop()
#DON'T FORGET TO ADD THE QUICK REF NUMBER
Saturday, November 16, 2013
MY PROGRAM NOW SAVES TO A DATA BASE
from Tkinter import *
import sqlite3
#Witten by Steve Atchison 11/16/2013
def cleargui():
textwindow.delete("1.0",END)
deed.delete(0,END)
def connectdb():
connect = sqlite3.connect("mydata.db")
cur = connect.cursor()
cur.execute("CREATE TABLE IF NOT EXISTS mytable(bookpage text, description text)")
def addtodatabase():
deednum=deed.get()
description=textwindow.get("1.0",END)
connect = sqlite3.connect("mydata.db")
cur=connect.cursor()
cur.execute("INSERT INTO mytable VALUES(?,?)",([deednum,description]))
connect.commit()
cleargui()
def getdata():
connect = sqlite3.connect("mydata.db")
cur=connect.cursor()
thedata = cur.execute("SELECT * FROM mytable")
for row in thedata:
textwindow.insert("100.0",row[0]+"\n"+row[1]+"\n")
connectdb()#creates a database if none exists.
root=Tk()
root.title("PROPERTY DESCRIPTION DATABASE")
root.config(bg='lightblue')
lbl=Label(root,text="Deed number").pack()
deed=Entry(root,text="Deed number")
deed.pack()
textwindow=Text(root,background='white')
textwindow.pack()
btn=Button(root,text='Add to Database ',command=addtodatabase)
btn.pack()
btn2=Button(root,text="Show data",command=getdata)
btn2.pack()
btn3=Button(root,text="Clear window",command=cleargui)
btn3.pack()
root.mainloop()
Added Buttons and new functions to my Text Editor
from Tkinter import *
def cleargui():
textwindow.delete("1.0",END)
def createfile(): #Creates a text file if none exitst.
f=open('propertydescripts.txt','a')
def save_changes():
f=open('propertydescripts.txt','a')
theletter=textwindow.get("1.0",END)
f.write('-----------------------------------------------------\n')
f.write(theletter)
f.close()
cleargui()
print("Edits saved ")
def loadletter():
f=open('propertydescripts.txt','r')
for line in f:
textwindow.insert("300.0",line)#change the 300 to match file length
def showtext():
f=open('propertydescripts.txt','a')
createfile()
root=Tk()
root.title("Steve's simple text editor.")
root.config(bg='lightblue')
textwindow=Text(root,background='white')
textwindow.pack()
btn=Button(root,text='Append ',command=save_changes)
btn.pack()
btn2=Button(root,text="Show ", command=loadletter)
btn2.pack()
btn3=Button(root,text="Clear ", command=cleargui)
btn3.pack()
showtext()
root.mainloop()
def cleargui():
textwindow.delete("1.0",END)
def createfile(): #Creates a text file if none exitst.
f=open('propertydescripts.txt','a')
def save_changes():
f=open('propertydescripts.txt','a')
theletter=textwindow.get("1.0",END)
f.write('-----------------------------------------------------\n')
f.write(theletter)
f.close()
cleargui()
print("Edits saved ")
def loadletter():
f=open('propertydescripts.txt','r')
for line in f:
textwindow.insert("300.0",line)#change the 300 to match file length
def showtext():
f=open('propertydescripts.txt','a')
createfile()
root=Tk()
root.title("Steve's simple text editor.")
root.config(bg='lightblue')
textwindow=Text(root,background='white')
textwindow.pack()
btn=Button(root,text='Append ',command=save_changes)
btn.pack()
btn2=Button(root,text="Show ", command=loadletter)
btn2.pack()
btn3=Button(root,text="Clear ", command=cleargui)
btn3.pack()
showtext()
root.mainloop()
Subscribe to:
Posts (Atom)
Followers
Blog Archive
- June (1)
- March (3)
- February (1)
- July (3)
- May (1)
- April (1)
- March (1)
- January (1)
- December (1)
- November (4)
- July (3)
- May (2)
- April (1)
- March (6)
- February (2)
- December (1)
- November (1)
- September (3)
- August (3)
- July (1)
- March (3)
- January (1)
- December (5)
- November (2)
- October (1)
- September (2)
- August (1)
- July (4)
- May (3)
- February (1)
- January (1)
- December (1)
- November (2)
- October (2)
- September (9)
- August (2)
- May (1)
- April (1)
- March (6)
- February (5)
- January (3)
- August (2)





