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 ...
随机推荐
- HTML认识
1.1 认识什么是纯文本文件 txt window自带有一个软件,叫做记事本,记事本保存的格式TXT,就是英文text的缩写,术语上称呼为"纯文本文件" TXT文件,只能保存文本内 ...
- [Android Pro] adb 进入 recovery, adb 进入 bootloader
reference to : http://blog.csdn.net/mldxs/article/details/18699965 重启到Recovery界面 adb reboot recovery ...
- October 13th 2016 Week 42nd Thursday
If the world seems cold to you, kindle fires to warm it. 若世界以寒相待,请点燃火堆以温暖相报. Kindle fires to warm th ...
- BigInteger类型的解析_超详细解析
/*9876543210987654234522345 214748364723453452323452345 2147483647234523452323452345 181760911432744 ...
- C 替换字符方法--1
#include "stdafx.h" //linux 底下要去掉这一行 #include <stdio.h> #include<stdlib.h> #in ...
- hud 1019最小公倍数
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1019 思路:头两个数先求,再用所求的数与后面的一个数求,依次类推 #include<stdlib ...
- C#dynamic关键字(1)
一.object,var,dynamic的区别 static void Main() { //var是C# 3中引入的,其实它仅仅只是一个语法糖. var本身并不是一种类型, 其它两者object和d ...
- HTML5学习之画布和SVG(四)
<!DOCTYPE html> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <m ...
- Mongo DB Study: first face with mongo DB
Mongo DB Study: first face with mongo DB 1. study methods: 1. Translate: I am the mongo DB organiz ...
- java中文乱码解决方法汇总
public static void main(String[] argv){ try { System.out.println(“中文”);//1 ...