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. HTML认识

    1.1 认识什么是纯文本文件 txt window自带有一个软件,叫做记事本,记事本保存的格式TXT,就是英文text的缩写,术语上称呼为"纯文本文件" TXT文件,只能保存文本内 ...

  2. [Android Pro] adb 进入 recovery, adb 进入 bootloader

    reference to : http://blog.csdn.net/mldxs/article/details/18699965 重启到Recovery界面 adb reboot recovery ...

  3. October 13th 2016 Week 42nd Thursday

    If the world seems cold to you, kindle fires to warm it. 若世界以寒相待,请点燃火堆以温暖相报. Kindle fires to warm th ...

  4. BigInteger类型的解析_超详细解析

    /*9876543210987654234522345 214748364723453452323452345 2147483647234523452323452345 181760911432744 ...

  5. C 替换字符方法--1

    #include "stdafx.h" //linux 底下要去掉这一行 #include <stdio.h> #include<stdlib.h> #in ...

  6. hud 1019最小公倍数

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1019 思路:头两个数先求,再用所求的数与后面的一个数求,依次类推 #include<stdlib ...

  7. C#dynamic关键字(1)

    一.object,var,dynamic的区别 static void Main() { //var是C# 3中引入的,其实它仅仅只是一个语法糖. var本身并不是一种类型, 其它两者object和d ...

  8. HTML5学习之画布和SVG(四)

    <!DOCTYPE html> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <m ...

  9. 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 ...

  10. java中文乱码解决方法汇总

    public static void main(String[] argv){ try {                 System.out.println(“中文”);//1           ...