python编程常用模板总结
来源:互联网 发布:java内嵌webkit浏览器 编辑:程序博客网 时间:2024/04/30 22:28
在我们编程时,有一些代码是固定的,例如Socket连接的代码,读取文件内容的代码,一般情况下我都是到网上搜一下然后直接粘贴下来改一改,当然如果你能自己记住所有的代码那更厉害,但是自己写毕竟不如粘贴来的快,而且自己写的代码还要测试,而一段经过测试的代码则可以多次使用,所以这里我就自己总结了一下python中常用的编程模板,如果还有哪些漏掉了请大家及时补充哈。
一、读写文件
1、读文件
(1)、一次性读取全部内容
1
2
3
4
filepath
=
'D:/data.txt'
#文件路径
with
open
(filepath,
'r'
) as f:
print
f.read()
(2)读取固定字节大小
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
# -*- coding: UTF-8 -*-
filepath
=
'D:/data.txt'
#文件路径
f
=
open
(filepath,
'r'
)
content
=
""
try
:
while
True
:
chunk
=
f.read(
8
)
if
not
chunk:
break
content
+
=
chunk
finally
:
f.close()
print
content
(3)每次读取一行
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
# -*- coding: UTF-8 -*-
filepath
=
'D:/data.txt'
#文件路径
f
=
open
(filepath,
"r"
)
content
=
""
try
:
while
True
:
line
=
f.readline()
if
not
line:
break
content
+
=
line
finally
:
f.close()
print
content
(4)一次读取所有的行
1
2
3
4
5
6
7
8
9
# -*- coding: UTF-8 -*-
filepath
=
'D:/data.txt'
#文件路径
with
open
(filepath,
"r"
) as f:
txt_list
=
f.readlines()
for
i
in
txt_list:
print
i,
2、写文件
1
2
3
4
5
6
# -*- coding: UTF-8 -*-
filepath
=
'D:/data1.txt'
#文件路径
with
open
(filepath,
"w"
) as f:
#w会覆盖原来的文件,a会在文件末尾追加
f.write(
'1234'
)
二、连接Mysql数据库
1、连接
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
#!/usr/bin/python
# -*- coding: UTF-8 -*-
import
MySQLdb
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(
"SELECT VERSION()"
)
# 使用 fetchone() 方法获取一条数据库。
data
=
cursor.fetchone()
print
"Database version : %s "
%
data
# 关闭数据库连接
db.close()
2、创建表
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
<P>
#!/usr/bin/python
# -*- coding: UTF-8 -*-
import
MySQLdb
# 打开数据库连接
db
=
MySQLdb.connect(
"localhost"
,
"testuser"
,
"test123"
,
"TESTDB"
)
# 使用cursor()方法获取操作游标
cursor
=
db.cursor()
# 如果数据表已经存在使用 execute() 方法删除表。
cursor.execute(
"DROP TABLE IF EXISTS EMPLOYEE"
)
# 创建数据表SQL语句
sql
=
"""CREATE TABLE EMPLOYEE (
FIRST_NAME CHAR(20) NOT NULL,
LAST_NAME CHAR(20),
AGE INT,
SEX CHAR(1),
INCOME FLOAT )"""
cursor.execute(sql)
# 关闭数据库连接
db.close()<
/
P>
3、插入
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
#!/usr/bin/python
# -*- coding: UTF-8 -*-
import
MySQLdb
# 打开数据库连接
db
=
MySQLdb.connect(
"localhost"
,
"testuser"
,
"test123"
,
"TESTDB"
)
# 使用cursor()方法获取操作游标
cursor
=
db.cursor()
# SQL 插入语句
sql
=
"""INSERT INTO EMPLOYEE(FIRST_NAME,
LAST_NAME, AGE, SEX, INCOME)
VALUES ('Mac', 'Mohan', 20, 'M', 2000)"""
try
:
# 执行sql语句
cursor.execute(sql)
# 提交到数据库执行
db.commit()
except
:
# Rollback in case there is any error
db.rollback()
# 关闭数据库连接
db.close()
4、查询
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
<P>
#!/usr/bin/python
# -*- coding: UTF-8 -*-
import
MySQLdb
# 打开数据库连接
db
=
MySQLdb.connect(
"localhost"
,
"testuser"
,
"test123"
,
"TESTDB"
)
# 使用cursor()方法获取操作游标
cursor
=
db.cursor()
# SQL 查询语句
sql
=
"SELECT
*
FROM EMPLOYEE \
WHERE INCOME >
'%d'
"
%
(
1000
)
try
:
# 执行SQL语句
cursor.execute(sql)
# 获取所有记录列表
results
=
cursor.fetchall()
for
row
in
results:
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: unable to fecth data"
# 关闭数据库连接
db.close()<
/
P>
5、更新
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
#!/usr/bin/python
# -*- coding: UTF-8 -*-
import
MySQLdb
# 打开数据库连接
db
=
MySQLdb.connect(
"localhost"
,
"testuser"
,
"test123"
,
"TESTDB"
)
# 使用cursor()方法获取操作游标
cursor
=
db.cursor()
# SQL 更新语句
sql
=
"UPDATE EMPLOYEE
SET
AGE
=
AGE
+
1
WHERE SEX
=
'%c'
"
%
(
'M'
)
try
:
# 执行SQL语句
cursor.execute(sql)
# 提交到数据库执行
db.commit()
except
:
# 发生错误时回滚
db.rollback()
# 关闭数据库连接
db.close()
三、Socket
1、服务器
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
from
socket
import
*
from
time
import
ctime
HOST
=
''
PORT
=
21568
BUFSIZ
=
1024
ADDR
=
(HOST, PORT)
tcpSerSock
=
socket(AF_INET, SOCK_STREAM)
tcpSerSock.bind(ADDR)
tcpSerSock.listen(
5
)
while
True
:
print
'waiting for connection...'
tcpCliSock, addr
=
tcpSerSock.accept()
print
'...connected from:'
, addr
while
True
:
try
:
data
=
tcpCliSock.recv(BUFSIZ)
print
'<'
, data
tcpCliSock.send(
'[%s] %s'
%
(ctime(), data))
except
:
print
'disconnect from:'
, addr
tcpCliSock.close()
break
tcpSerSock.close()
2、客户端
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
from
socket
import
*
HOST
=
'localhost'
PORT
=
21568
BUFSIZ
=
1024
ADDR
=
(HOST, PORT)
tcpCliSock
=
socket(AF_INET, SOCK_STREAM)
tcpCliSock.connect(ADDR)
try
:
while
True
:
data
=
raw_input
(
'>'
)
if
data
=
=
'close'
:
break
if
not
data:
continue
tcpCliSock.send(data)
data
=
tcpCliSock.recv(BUFSIZ)
print
data
except
:
tcpCliSock.close()
四、多线程
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
import
time, threading
# 新线程执行的代码:
def
loop():
print
'thread %s is running...'
%
threading.current_thread().name
n
=
0
while
n <
5
:
n
=
n
+
1
print
'thread %s >>> %s'
%
(threading.current_thread().name, n)
time.sleep(
1
)
print
'thread %s ended.'
%
threading.current_thread().name
print
'thread %s is running...'
%
threading.current_thread().name
t
=
threading.Thread(target
=
loop, name
=
'LoopThread'
)
t.start()
t.join()
print
'thread %s ended.'
%
threading.current_thread().name
还请大家积极补充!
0 0
- python编程常用模板总结
- python编程常用模板总结
- python编程常用模板总结
- python编程常用模板总结
- python编程常用模板总结
- python编程常用模板总结
- 【转载】python编程常用模板总结
- python编程常用总结
- python编程常用方法总结
- python常用模板库
- LCS常用模板总结
- ClearSilver模板编程总结
- 模板编程总结
- python编程中常用的12种基础知识总结
- python编程中常用的12种基础知识总结
- Python编程中常用的12种基础知识总结
- Python编程中常用的12种基础知识总结
- Python编程中常用的12种基础知识总结
- 修改Windows系统下滚轮方向为自然方向,与OSX相同
- css绘制带箭头对话框
- hibernate关于session的关闭问题
- SAP 网络流模板,邻接矩阵
- ios 获取设备号
- python编程常用模板总结
- WebService上传和下载文件
- python基础学习二 list和tuple(列表和元组)
- Hbernate一对多和多对一关系详解
- 一路PN码串行捕获设计--基于《通信收发信机的verilog实现与仿真》实例
- select into from 和 insert into select 的用法和区别复制表数据
- Android横竖屏切换小结
- Cocos2d-x shader学习2: 模糊(Blur)
- 项目管理-常用工具推荐