1. 异常处理

 

参考文章: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:

...

 

  1. import logging
  2. logging.basicConfig(level=logging.DEBUG,
  3.                     format='%(asctime)s %(filename)s[line:%(lineno)d] %(levelname)s %(message)s',
  4.                     datefmt='%a, %d %b %Y %H:%M:%S',
  5.                     filename='./log.txt',
  6.                     filemode='a+')
  7.  
  8. try:
  9.     f = open("/root/test.py")
  10.     f.close()
  11. except IOError,e:
  12.     logging.error("%s"% e)
  13. else:
  14.     logging.info("%s"%"no exception caught\n")
  15. #finally:
  16. # logging.info("last")

 

  1. raise "luan tan qing !" #直接抛出异常
  2. assert len("love") != len("like"),'assert can\'t pass!' #断言
  3.  
  4. #使用with块,则会关闭上下文对象
  5. with open('/root/test.py') as f:
  6.     for line in f:
  7.         print line

 

2.MySQL数据库

 

使用标准的DB-API来访问数据库

参考:http://www.cnblogs.com/hongten/p/hongten_python_mysqldb.html

 

2.1创建表

  1. db = MySQLdb.connect("localhost","pzdn","pzdn","testdb" )
  2. print db
  3. cursor = db.cursor()
  4. sql = """CREATE TABLE EMPLOYEE (
  5.          FIRST_NAME CHAR(20) NOT NULL,
  6.          LAST_NAME CHAR(20),
  7.          AGE INT,
  8.          SEX CHAR(1),
  9.          INCOME FLOAT )"""
  10.  
  11. cursor.execute(sql)
  12. db.close()

2.2插入数据

 

  1. import MySQLdb
  2.  
  3. db = MySQLdb.connect("localhost","pzdn","pzdn","testdb" )
  4. print db
  5. cursor = db.cursor()
  6.  
  7. try:
  8.     sql = """INSERT INTO EMPLOYEE(FIRST_NAME,
  9.          LAST_NAME, AGE, SEX, INCOME)
  10.          VALUES ('zhen', 'peng', 20, 'M', 2000)"""
  11.     cursor.execute(sql)
  12.     db.commit()
  13. except:
  14.     db.rollback()
  15. finally:
  16.     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

  1. import MySQLdb
  2.  
  3. db = MySQLdb.connect("localhost","pzdn","pzdn","testdb" )
  4. print db
  5. cursor = db.cursor()
  6.  
  7. try:
  8.     sql = "SELECT * FROM EMPLOYEE \
  9.        WHERE INCOME > '%d'" % (1000)
  10.  
  11.     cursor.execute(sql)
  12.     result =cursor.fetchall()
  13.     for row in result:
  14.         fname = row[0]
  15.         lname = row[1]
  16.         age = row[2]
  17.         sex = row[3]
  18.         income = row[4]
  19.         print "fname=%s,lname=%s,age=%d,sex=%s,income=%d" % \
  20.              (fname, lname, age, sex, income )
  21. except Exception, e:
  22.     print e.message
  23. finally:
  24.     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()

  1. file = open("testfile.txt","r+")
  2. print 'read tens:',file.read(10)
  3. for line in file:
  4.     print line
  5. print 'display the file info:'
  6. print file.mode,file.name
  7.  
  8. file.write("pz is learning the python language!\n")
  9.  
  10. file.close()
  11. print file.closed
  12.  
  13. import os
  14. 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.getcwd()

os.chdir(dirName)

print
os.getcwd()

Python学习笔记09的更多相关文章

  1. Python学习笔记,day5

    Python学习笔记,day5 一.time & datetime模块 import本质为将要导入的模块,先解释一遍 #_*_coding:utf-8_*_ __author__ = 'Ale ...

  2. 机器学习实战(Machine Learning in Action)学习笔记————09.利用PCA简化数据

    机器学习实战(Machine Learning in Action)学习笔记————09.利用PCA简化数据 关键字:PCA.主成分分析.降维作者:米仓山下时间:2018-11-15机器学习实战(Ma ...

  3. python 学习笔记 13 -- 经常使用的时间模块之time

    Python 没有包括相应日期和时间的内置类型.只是提供了3个相应的模块,能够採用多种表示管理日期和时间值: *    time 模块由底层C库提供与时间相关的函数.它包括一些函数用于获取时钟时间和处 ...

  4. [Python学习笔记]调试

    编码占了编程工作量的90%,调试占了另外90%,这是一个流传着的笑话.调试在编程中占有很大的分量,即使专业的程序员也一直在制造缺陷. 抛出异常 抛出异常相当于是说:"停止运行这个函数中的代码 ...

  5. [Python学习笔记]正则表达式总结

    常用缩写字符及其含义表格查询 缩写字符分类 含义 \d 0-9的任意数字 \D 除0-9的数字以外的任何字符 \w 任何字母.数字或下划线字符(可以认为是匹配"单词"字符) \W ...

  6. python学习笔记整理——字典

    python学习笔记整理 数据结构--字典 无序的 {键:值} 对集合 用于查询的方法 len(d) Return the number of items in the dictionary d. 返 ...

  7. VS2013中Python学习笔记[Django Web的第一个网页]

    前言 前面我简单介绍了Python的Hello World.看到有人问我搞搞Python的Web,一时兴起,就来试试看. 第一篇 VS2013中Python学习笔记[环境搭建] 简单介绍Python环 ...

  8. python学习笔记之module && package

    个人总结: import module,module就是文件名,导入那个python文件 import package,package就是一个文件夹,导入的文件夹下有一个__init__.py的文件, ...

  9. python学习笔记(六)文件夹遍历,异常处理

    python学习笔记(六) 文件夹遍历 1.递归遍历 import os allfile = [] def dirList(path): filelist = os.listdir(path) for ...

随机推荐

  1. supersr--图片轮播逻辑

    // //  ViewController.m // 图片轮播 // //  Created by apple on 14-5-18. //  Copyright (c) 2014年  All rig ...

  2. 兼容iOS 10:配置获取隐私数据权限声明

    原文链接 iOS 10的一大变化是更强的隐私数据保护.在文档中是这么描述的: You must statically declare your app’s intended use of protec ...

  3. Shell之变量操作

    1.定义变量:为了避免与环境变量冲突,一般用小写:如pp="mydql,kdkfeof"; 第二赋值方案: 调用变量使用$符号: 变量叠加: 2.输出采用echo,如上图所示: 3 ...

  4. 二、JavaScript语言--JS基础--JavaScript进阶篇--浏览器对象

    1.window对象 window对象是BOM的核心,window对象指当前的浏览器窗口. window对象方法:

  5. 多线线程async与await关键字

    创建线程 //这里面需要注意的是,创建Thread的实例之后,需要手动调用它的Start方法将其启动. //但是对于Task来说,StartNew和Run的同时,既会创建新的线程,并且会立即启动它. ...

  6. java 泛型 -- 泛型类,泛型接口,泛型方法

    泛型T泛型的许多最佳例子都来自集合框架,因为泛型让您在保存在集合中的元素上指定类型约束.在定义泛型类或声明泛型类的变量时,使用尖括号来指定形式类型参数.形式类型参数与实际类型参数之间的关系类似于形式方 ...

  7. python实现学生选课系统 面向对象的应用:

    一.要求: 选课系统 管理员: 创建老师:姓名.性别.年龄.资产 创建课程:课程名称.上课时间.课时费.关联老师 使用pickle保存在文件 学生: 学生:用户名.密码.性别.年龄.选课列表[].上课 ...

  8. MVP社区巡讲照片集

    今天MVP社区巡讲在北京利星行微软大厦连同SQL PASS社区合办了一次线下活动,这次互动汇集了在北京大多数的微软MVP,他们都是微软认可的有着各微软产品和技术特长的技术专家,无论是MVP社区巡讲还是 ...

  9. .NET NLog 详解(四) - filter

    我们将版本向前切换到20051025,这期的关注点是filter.我们在使用日志的时候可能希望加上一些过滤器,在满足某些特定条件的时候才输出.举个简单的使用方式如下: <nlog> < ...

  10. PHPCMS 实现上一篇、下一篇

    方法一:直接调用phpcms系统的函数 <div class="info"> <span>上一篇:<a href="{$previous_p ...