常用python编程模板汇总
在我们编程时,有一些代码是固定的,例如Socket连接的代码,读取文件内容的代码,一般情况下我都是到网上搜一下然后直接粘贴下来改一改,当然如果你能自己记住所有的代码那更厉害,但是自己写毕竟不如粘贴来的快,而且自己写的代码还要测试,而一段经过测试的代码则可以多次使用,所以这里我就自己总结了一下python中常用的编程模板,如果还有哪些漏掉了请大家及时补充哈。
一、读写文件
1、读文件
(1)、一次性读取全部内容
filepath='D:/data.txt'#文件路径 withopen(filepath,'r')asf: printf.read()
(2)读取固定字节大小
#-*-coding:UTF-8-*- filepath='D:/data.txt'#文件路径 f=open(filepath,'r') content="" try: whileTrue: chunk=f.read(8) ifnotchunk: break content+=chunk finally: f.close() printcontent
(3)每次读取一行
#-*-coding:UTF-8-*- filepath='D:/data.txt'#文件路径 f=open(filepath,"r") content="" try: whileTrue: line=f.readline() ifnotline: break content+=line finally: f.close() printcontent
(4)一次读取所有的行
#-*-coding:UTF-8-*- filepath='D:/data.txt'#文件路径 withopen(filepath,"r")asf: txt_list=f.readlines() foriintxt_list: printi,
2、写文件
#-*-coding:UTF-8-*- filepath='D:/data1.txt'#文件路径 withopen(filepath,"w")asf:#w会覆盖原来的文件,a会在文件末尾追加 f.write('1234')
二、连接Mysql数据库
1、连接
#!/usr/bin/python #-*-coding:UTF-8-*- importMySQLdb DB_URL='localhost' USER_NAME='root' PASSWD='1234' DB_NAME='test' #打开数据库连接 db=MySQLdb.connect(DB_URL,USER_NAME,PASSWD,DB_NAME) #使用cursor()方法获取操作游标 cursor=db.cursor() #使用execute方法执行SQL语句 cursor.execute("SELECTVERSION()") #使用fetchone()方法获取一条数据库。 data=cursor.fetchone() print"Databaseversion:%s"%data #关闭数据库连接 db.close()
2、创建表
#!/usr/bin/python #-*-coding:UTF-8-*- importMySQLdb #打开数据库连接 db=MySQLdb.connect("localhost","testuser","test123","TESTDB") #使用cursor()方法获取操作游标 cursor=db.cursor() #如果数据表已经存在使用execute()方法删除表。 cursor.execute("DROPTABLEIFEXISTSEMPLOYEE") #创建数据表SQL语句 sql="""CREATETABLEEMPLOYEE( FIRST_NAMECHAR(20)NOTNULL, LAST_NAMECHAR(20), AGEINT, SEXCHAR(1), INCOMEFLOAT)""" cursor.execute(sql) #关闭数据库连接 db.close()
3、插入
#!/usr/bin/python #-*-coding:UTF-8-*- importMySQLdb #打开数据库连接 db=MySQLdb.connect("localhost","testuser","test123","TESTDB") #使用cursor()方法获取操作游标 cursor=db.cursor() #SQL插入语句 sql="""INSERTINTOEMPLOYEE(FIRST_NAME, LAST_NAME,AGE,SEX,INCOME) VALUES('Mac','Mohan',20,'M',2000)""" try: #执行sql语句 cursor.execute(sql) #提交到数据库执行 db.commit() except: #Rollbackincasethereisanyerror db.rollback() #关闭数据库连接 db.close()
4、查询
#!/usr/bin/python #-*-coding:UTF-8-*- importMySQLdb #打开数据库连接 db=MySQLdb.connect("localhost","testuser","test123","TESTDB") #使用cursor()方法获取操作游标 cursor=db.cursor() #SQL查询语句 sql="SELECT*FROMEMPLOYEE\ WHEREINCOME>'%d'"%(1000) try: #执行SQL语句 cursor.execute(sql) #获取所有记录列表 results=cursor.fetchall() forrowinresults: fname=row[0] lname=row[1] age=row[2] sex=row[3] income=row[4] #打印结果 print"fname=%s,lname=%s,age=%d,sex=%s,income=%d"%\ (fname,lname,age,sex,income) except: print"Error:unabletofecthdata" #关闭数据库连接 db.close()
5、更新
#!/usr/bin/python #-*-coding:UTF-8-*- importMySQLdb #打开数据库连接 db=MySQLdb.connect("localhost","testuser","test123","TESTDB") #使用cursor()方法获取操作游标 cursor=db.cursor() #SQL更新语句 sql="UPDATEEMPLOYEESETAGE=AGE+1 WHERESEX='%c'"%('M') try: #执行SQL语句 cursor.execute(sql) #提交到数据库执行 db.commit() except: #发生错误时回滚 db.rollback() #关闭数据库连接 db.close()
三、Socket
1、服务器
fromsocketimport* fromtimeimportctime HOST='' PORT=21568 BUFSIZ=1024 ADDR=(HOST,PORT) tcpSerSock=socket(AF_INET,SOCK_STREAM) tcpSerSock.bind(ADDR) tcpSerSock.listen(5) whileTrue: print'waitingforconnection...' tcpCliSock,addr=tcpSerSock.accept() print'...connectedfrom:',addr whileTrue: try: data=tcpCliSock.recv(BUFSIZ) print'<',data tcpCliSock.send('[%s]%s'%(ctime(),data)) except: print'disconnectfrom:',addr tcpCliSock.close() break tcpSerSock.close()
2、客户端
fromsocketimport* HOST='localhost' PORT=21568 BUFSIZ=1024 ADDR=(HOST,PORT) tcpCliSock=socket(AF_INET,SOCK_STREAM) tcpCliSock.connect(ADDR) try: whileTrue: data=raw_input('>') ifdata=='close': break ifnotdata: continue tcpCliSock.send(data) data=tcpCliSock.recv(BUFSIZ) printdata except: tcpCliSock.close()
四、多线程
importtime,threading #新线程执行的代码: defloop(): print'thread%sisrunning...'%threading.current_thread().name n=0 whilen<5: n=n+1 print'thread%s>>>%s'%(threading.current_thread().name,n) time.sleep(1) print'thread%sended.'%threading.current_thread().name print'thread%sisrunning...'%threading.current_thread().name t=threading.Thread(target=loop,name='LoopThread') t.start() t.join() print'thread%sended.'%threading.current_thread().name
还请大家积极补充!