Python学习笔记09
异常处理
参考文章:http://blog.csdn.net/sinchb/article/details/8392827
有异常则执行except子句——类似C#的catch
就是当没有检测到异常的时候,则执行else语句——C#并没有这个分之
finally子句是无论是否检测到异常,都会执行的一段代码——和C#一致
使用raise来抛出异常——类似C#的throw
with语句——类似C#的using
try:
...
except exception1:
...
except exception2:
...
except:
...
else:
...
finally:
...
- import logging
- logging.basicConfig(level=logging.DEBUG,
- format='%(asctime)s %(filename)s[line:%(lineno)d] %(levelname)s %(message)s',
- datefmt='%a, %d %b %Y %H:%M:%S',
- filename='./log.txt',
- filemode='a+')
- try:
- f = open("/root/test.py")
- f.close()
- except IOError,e:
- logging.error("%s"% e)
- else:
- logging.info("%s"%"no exception caught\n")
- #finally:
- # logging.info("last")
- raise "luan tan qing !" #直接抛出异常
- assert len("love") != len("like"),'assert can\'t pass!' #断言
- #使用with块,则会关闭上下文对象
- with open('/root/test.py') as f:
- for line in f:
- print line
2.MySQL数据库
使用标准的DB-API来访问数据库
参考:http://www.cnblogs.com/hongten/p/hongten_python_mysqldb.html
2.1创建表
- db = MySQLdb.connect("localhost","pzdn","pzdn","testdb" )
- print db
- cursor = db.cursor()
- 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()
2.2插入数据
- import MySQLdb
- db = MySQLdb.connect("localhost","pzdn","pzdn","testdb" )
- print db
- cursor = db.cursor()
- try:
- sql = """INSERT INTO EMPLOYEE(FIRST_NAME,
- LAST_NAME, AGE, SEX, INCOME)
- VALUES ('zhen', 'peng', 20, 'M', 2000)"""
- cursor.execute(sql)
- db.commit()
- except:
- db.rollback()
- finally:
- db.close()
另外一种形式,传参数:
sql = "INSERT INTO EMPLOYEE(FIRST_NAME, \
LAST_NAME, AGE, SEX, INCOME) \
VALUES ('%s', '%s', '%d', '%c', '%d' )" % \
('zhen', 'peng', 20, 'M', 2000)
con.execute('insert into Login values("%s", "%s")' % \
(user_id, password))
2.3查询
fetchone()
fetchall()
rowcount
- import MySQLdb
- db = MySQLdb.connect("localhost","pzdn","pzdn","testdb" )
- print db
- cursor = db.cursor()
- try:
- sql = "SELECT * FROM EMPLOYEE \
- WHERE INCOME > '%d'" % (1000)
- cursor.execute(sql)
- result =cursor.fetchall()
- for row in result:
- 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 Exception, e:
- print e.message
- finally:
- db.close()
3.文件和目录IO
3.1文件打开模式
|
模式 |
描述 |
|
r |
以只读方式打开文件。文件的指针将会放在文件的开头。这是默认模式。 |
|
rb |
以二进制格式打开一个文件用于只读。文件指针将会放在文件的开头。这是默认模式。 |
|
r+ |
打开一个文件用于读写。文件指针将会放在文件的开头。 |
|
rb+ |
以二进制格式打开一个文件用于读写。文件指针将会放在文件的开头。 |
|
w |
打开一个文件只用于写入。如果该文件已存在则将其覆盖。如果该文件不存在,创建新文件。 |
|
wb |
以二进制格式打开一个文件只用于写入。如果该文件已存在则将其覆盖。如果该文件不存在,创建新文件。 |
|
w+ |
打开一个文件用于读写。如果该文件已存在则将其覆盖。如果该文件不存在,创建新文件。 |
|
wb+ |
以二进制格式打开一个文件用于读写。如果该文件已存在则将其覆盖。如果该文件不存在,创建新文件。 |
|
a |
打开一个文件用于追加。如果该文件已存在,文件指针将会放在文件的结尾。也就是说,新的内容将会被写入到已有内容之后。如果该文件不存在,创建新文件进行写入。 |
|
ab |
以二进制格式打开一个文件用于追加。如果该文件已存在,文件指针将会放在文件的结尾。也就是说,新的内容将会被写入到已有内容之后。如果该文件不存在,创建新文件进行写入。 |
|
a+ |
打开一个文件用于读写。如果该文件已存在,文件指针将会放在文件的结尾。文件打开时会是追加模式。如果该文件不存在,创建新文件用于读写。 |
|
ab+ |
以二进制格式打开一个文件用于追加。如果该文件已存在,文件指针将会放在文件的结尾。如果该文件不存在,创建新文件用于读写。 |
常用:r+,w+,a+,其中r+与w+等价。a+为append,w+为覆盖。带有b的,表示读取方式为二进制。
3.2从键盘输入
raw_input("read a line from console:") #read line
input("please ensure the input is python expression") #must be Python expression
3.2文件访问方法
open()
read()
write()
close()
以及os的rename(),remove()
- file = open("testfile.txt","r+")
- print 'read tens:',file.read(10)
- for line in file:
- print line
- print 'display the file info:'
- print file.mode,file.name
- file.write("pz is learning the python language!\n")
- file.close()
- print file.closed
- import os
- os.rename(file.name,file.name+"")
3.3目录访问方法
这差不多就是Linux的目录管理命令
mkdir()
removedires()
getcwd()
chdir()
rmdir(path)
listdir(path)
|
import os dirName = "newdir"
os.removedirs(dirName) os.mkdir(dirName) print os.chdir(dirName) print |
Python学习笔记09的更多相关文章
- Python学习笔记,day5
Python学习笔记,day5 一.time & datetime模块 import本质为将要导入的模块,先解释一遍 #_*_coding:utf-8_*_ __author__ = 'Ale ...
- 机器学习实战(Machine Learning in Action)学习笔记————09.利用PCA简化数据
机器学习实战(Machine Learning in Action)学习笔记————09.利用PCA简化数据 关键字:PCA.主成分分析.降维作者:米仓山下时间:2018-11-15机器学习实战(Ma ...
- python 学习笔记 13 -- 经常使用的时间模块之time
Python 没有包括相应日期和时间的内置类型.只是提供了3个相应的模块,能够採用多种表示管理日期和时间值: * time 模块由底层C库提供与时间相关的函数.它包括一些函数用于获取时钟时间和处 ...
- [Python学习笔记]调试
编码占了编程工作量的90%,调试占了另外90%,这是一个流传着的笑话.调试在编程中占有很大的分量,即使专业的程序员也一直在制造缺陷. 抛出异常 抛出异常相当于是说:"停止运行这个函数中的代码 ...
- [Python学习笔记]正则表达式总结
常用缩写字符及其含义表格查询 缩写字符分类 含义 \d 0-9的任意数字 \D 除0-9的数字以外的任何字符 \w 任何字母.数字或下划线字符(可以认为是匹配"单词"字符) \W ...
- python学习笔记整理——字典
python学习笔记整理 数据结构--字典 无序的 {键:值} 对集合 用于查询的方法 len(d) Return the number of items in the dictionary d. 返 ...
- VS2013中Python学习笔记[Django Web的第一个网页]
前言 前面我简单介绍了Python的Hello World.看到有人问我搞搞Python的Web,一时兴起,就来试试看. 第一篇 VS2013中Python学习笔记[环境搭建] 简单介绍Python环 ...
- python学习笔记之module && package
个人总结: import module,module就是文件名,导入那个python文件 import package,package就是一个文件夹,导入的文件夹下有一个__init__.py的文件, ...
- python学习笔记(六)文件夹遍历,异常处理
python学习笔记(六) 文件夹遍历 1.递归遍历 import os allfile = [] def dirList(path): filelist = os.listdir(path) for ...
随机推荐
- Qt 获取cmd运行结果
http://www.cnblogs.com/gisbeginner/archive/2012/12/08/2809063.html BOOL ExecDosCmd(){ #define EXECDO ...
- 用线框模式绘制多边形 glPolygonMode
glPolygonMode(GL_FRONT_AND_BACK, GL_LINE); glBegin(GL_TRIANGLES);//开始以g_ViewMode模式绘制 glColor3ub(182. ...
- nmake geos
参考:http://blog.sina.com.cn/s/blog_82a2a7d301010f87.html 1 打开visual studio command prompt 该工具位于 开始程序 ...
- NYOJ题目596谁是最好的Coder
aaarticlea/png;base64,iVBORw0KGgoAAAANSUhEUgAAAscAAAMaCAIAAADlQ3w8AAAgAElEQVR4nO3dO3LbvN4H4G8T7r2Q1F
- js冒泡排序与二分法查找
冒泡排序 var attr=[1,5,7,6,3,9,2,8,4]; var zj=0; //控制比较轮数 for(var i=0;i<attr.length-1;i++) { //控制每轮的比 ...
- EditPlus
# 批量更改文件编码 原文:EditPlus批量更改文件编码 # 标签位置设置到顶部 工具-参数设置-布局-文档选择器-位置
- lsof -ntP -i:端口取出 动行程序的PID 然后xargs kill -9 这个进程
[root@ok ok]# lsof -ntP -i: [root@ok ok]# netstat -lnutp|grep tcp /dnsmasq tcp /sshd tcp ::: :::* LI ...
- maven 依赖查询
该文章源地址:http://xiejianglei163.blog.163.com/blog/static/1247276201362733217604/ 为方便个人使用,转载于此处. http:// ...
- 5-04用Sql语句创建表
用Sql语句创建表的基本语法: USE E_Market--指向当前所操作的数据库 GO CREATE TABLE CommoditySort--创建表的名字 { sortID int IDENTIT ...
- android 入门-控件 测量状态栏高度
private ViewTreeObserver viewTreeObserver; /** 获取可見区域高度 **/ WindowManager manager = getWindowManager ...