此为便于期末复习总结的一些简单的python小知识,祝大家期末顺利
两种数据库知识
<1> DBM database
1.DBMs就像Python字典一样工作,除了它们通常保存在磁盘上而不是内存中,而且它们的键和值总是字节串对象
2.两种方法: shelve module/ SQLite database
(Both programs can also load and save a simple XML format I which allows, for example, to export DVD data from one program I and import it into the other /基于sql的版本提供了更多的功能,数据设计也更简洁)
3.shelve模块提供了一个DBM 的包装器,只要我们只使用字符串键和可pickle的值,就可以将DBM作为字典I进行交互
shelve模块:不需要做任何数据转换,而且我可以把DBM对象当作字典来对待
4.最后,关闭DBM,这将
- 清除DBM的内部缓存
- 确保磁盘文件反映了所做的任何更改
- 同时关闭该文件
1.shelve.open(filename, flag=’c’, protocol=None, writeback=False):创建或打开一个shelve对象。shelve默认打开方式支持同时读写操作。
filename是关联的文件路径。
可选参数flag,默认为‘c’,如果数据文件不存在,就创建,允许读写;可以是: ‘r’: 只读;’w’: 可读写; ‘n’: 每次调用open()都重新创建一个空的文件,可读写。
protocol:是序列化模式,默认值为None。具体还没有尝试过,从pickle的资料中查到以下信息【protocol的值可以是1或2,表示以二进制的形式序列化】
2.shelve.close()
同步并关闭shelve对象。
注意:每次使用完毕,都必须确保shelve对象被安全关闭。
=>注意点:
<2> SQL database
1.
所有查询都是通过数据库对象的cursor()方法提供的数据库游标I执行的
2.dirs = cursor.fetchall() 用于输出list类型
3.我们使用fetchone(),因为有零个或一个匹配的记录,但fetch方法总是返回字段F或None的序列,如果没有记录,即使我们要求只检索一个字段
数据库访问的补充
1.要操作关系数据库,首先需要连接到数据库,一个数据库连接称为Connection;
连接到数据库后,需要打开游标,称之为Cursor,通过Cursor执行SQL语句,然后,获得执行结果(SQLite是一种嵌入式数据库,它的数据库就是一个文件)
2.
3.在Python中操作数据库时,要先导入数据库对应的驱动,然后,通过Connection对象和Cursor对象操作数据。
要确保打开的Connection对象和Cursor对象都正确地被关闭,否则,资源就会泄露。
如何才能确保出错的情况下也关闭掉Connection对象和Cursor对象呢?请回忆try:…except:…finally:…的用法
# 关闭Cursor:
>>> cursor.close()
# 提交事务:
>>> conn.commit()
# 关闭Connection:
>>> conn.close()
正则表达式
1.正则表达式是表示字符串集合的紧凑符号,用re模块
2.Function m.group(g, …) works on a match object m I Returns the numbered capture group g F the whole match is group 0
>>> match.group(0) if match else print("no match")
#整个正则表达式是否匹配
#group(0)永远是原始字符串,group(1)、group(2)……表示第1、2、……个子串
3.对于^(如果位于开头,则作用于全部字符串),如果它是字符类中的第一个字符,它就具有否定的含义,否则它只是一个文字插入符号/ if only one number is given in the quantifier it is taken to be both the minimum and the maximum
4.
- ?: The {0,1} quantification is so often used
- +:stands for {1,n}
-
- :stands for {0,n}
5.Regular expressions are used in:
Parsing/Searching/Searching and replacing/Splitting strings/Validation
(解析/搜索/搜索和替换/分割字符串/验证)
- :stands for {0,n}